ControlUp · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for DaaS IQ Subscriptions API
32 actions
32 updates
phrasing
extends
openapi/controlup-subscriptions-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for ControlUp's API. It is a proposal applied on top of the contract, not a document ControlUp publishes.
What the actions change
x-apievangelist-phrasing
Targets 32 · first 16 shown; the file carries all of them
$.info
$.paths['/cloud/subscriptions/{id}/credentials/verify'].post
$.paths['/cloud/subscriptions/{id}/credentials/verify/transcript'].post
$.paths['/cloud/subscriptions/{id}/credentials/verify/stream'].get
$.paths['/cloud/subscriptions/{id}/credentials/verify/sse'].post
$.paths['/cloud/subscriptions/{subscriptionId}/metadata/regions'].get
$.paths['/cloud/subscriptions/{subscriptionId}/metadata/regions/{region}'].get
$.paths['/cloud/subscriptions/{subscriptionId}/metadata/vm-sizes'].get
$.paths['/cloud/subscriptions/{subscriptionId}/metadata/os-disks'].get
$.paths['/cloud/subscriptions/{subscriptionId}/metadata/compute-quota'].get
$.paths['/cloud/subscriptions/{subscriptionId}/preflight/permissions/host-pool-create'].get
$.paths['/cloud/subscriptions/{subscriptionId}/preflight/permissions/session-host-create'].get
$.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/virtual-networks'].get
$.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/virtual-machines'].get
$.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/galleries'].get
$.paths['/cloud/subscriptions/{subscriptionId}/lookup/resource-groups'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for DaaS IQ Subscriptions API
version: 1.0.0
extends: openapi/controlup-subscriptions-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 31
- target: $.paths['/cloud/subscriptions/{id}/credentials/verify'].post
update:
x-apievangelist-phrasing:
intent: Verify a subscription's cloud credentials (deprecated)
effect: read
questions:
- Can I check whether the stored cloud credentials on a subscription still work using the older subscription-level endpoint?
- Is there a deprecated call that verifies credentials per subscription rather than per tenant?
instructions:
- text: Verify the cloud credentials stored on subscription {id} with the deprecated subscription endpoint.
slots:
id: path.id
- text: Run the legacy credential check for subscription {id} and tell me if it passes.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}/credentials/verify/transcript'].post
update:
x-apievangelist-phrasing:
intent: Get a step-by-step credential check transcript (deprecated)
effect: read
questions:
- Can I get a detailed transcript of each permission check when verifying a subscription's credentials?
- Which step of the connection test failed for my subscription's credentials on the old subscription endpoint?
instructions:
- text: Produce the verification transcript for subscription {id} showing each connection and permission check.
slots:
id: path.id
- text: Show me the legacy step-by-step credential transcript for subscription {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}/credentials/verify/stream'].get
update:
x-apievangelist-phrasing:
intent: Stream subscription credential check over WebSocket
effect: read
questions:
- Is there an old WebSocket stream that shows live progress while a subscription's cloud credentials are verified?
- Can I watch subscription-level credential verification step by step over a WebSocket?
instructions:
- text: Open the deprecated WebSocket stream verifying credentials for subscription {id}.
slots:
id: path.id
- text: Stream subscription {id}'s credential verification progress over WebSocket.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/cloud/subscriptions/{id}/credentials/verify/sse'].post
update:
x-apievangelist-phrasing:
intent: Stream subscription credential check over SSE
effect: read
questions:
- Can I get server-sent events while my subscription's cloud credentials are being verified?
- Is the SSE credential check on subscriptions deprecated in favor of tenant verification?
instructions:
- text: Stream subscription {id}'s credential verification as server-sent events.
slots:
id: path.id
- text: Verify cloud credentials on subscription {id} with the deprecated SSE stream.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/metadata/regions'].get
update:
x-apievangelist-phrasing:
intent: List regions a subscription can deploy into
effect: read
questions:
- Which Azure regions can my subscription deploy session hosts into?
- Can I sort or filter the list of regions available to a subscription?
instructions:
- text: List the deployable regions for subscription {subscriptionId}.
slots:
subscriptionId: path.subscriptionId
- text: Show page {page} of regions available to subscription {subscriptionId}, {pageSize} per page.
slots:
page: query.page
pageSize: query.pageSize
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/metadata/regions/{region}'].get
update:
x-apievangelist-phrasing:
intent: Get one region's metadata and availability zones
effect: read
questions:
- What availability zones does a specific region offer for my subscription?
- Can I look up the details of a single named region in my subscription's context?
instructions:
- text: Get region {region} metadata, including availability zones, for subscription {subscriptionId}.
slots:
region: path.region
subscriptionId: path.subscriptionId
- text: Show the availability zones in {region} for subscription {subscriptionId}.
slots:
region: path.region
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/metadata/vm-sizes'].get
update:
x-apievangelist-phrasing:
intent: List VM sizes offered in a region
effect: read
questions:
- Which VM sizes can I pick in a given region, with their CPU and memory specs?
- How many vCPUs and how much memory does each VM SKU in eastus have for my subscription?
- Can I filter VM sizes by capability when planning session hosts?
instructions:
- text: List the VM sizes available in {region} for subscription {subscriptionId}.
slots:
region: query.region
subscriptionId: path.subscriptionId
- text: Show VM SKUs in {region} for subscription {subscriptionId} sorted by {sort}.
slots:
region: query.region
sort: query.sort
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/metadata/os-disks'].get
update:
x-apievangelist-phrasing:
intent: List OS disk size options for a region
effect: read
questions:
- What OS disk sizes can I choose for session hosts in a region?
- Which operating system disk options does my subscription offer in westeurope?
instructions:
- text: List the OS disk size options in {region} for subscription {subscriptionId}.
slots:
region: query.region
subscriptionId: path.subscriptionId
- text: Show me which OS disk sizes I can pick in {region} under subscription {subscriptionId}.
slots:
region: query.region
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/metadata/compute-quota'].get
update:
x-apievangelist-phrasing:
intent: Check vCPU quota usage in a region
effect: read
questions:
- How much of my vCPU quota is used in a region, per VM family?
- Do I have enough compute quota left in a region to add more session hosts?
instructions:
- text: Show vCPU quota usage and limits in {region} for subscription {subscriptionId}.
slots:
region: query.region
subscriptionId: path.subscriptionId
- text: Check the remaining regional compute quota for subscription {subscriptionId} in {region}.
slots:
region: query.region
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/preflight/permissions/host-pool-create'].get
update:
x-apievangelist-phrasing:
intent: Preflight permissions to create a host pool
effect: read
questions:
- Does my subscription's service principal have the rights to create an AVD host pool and application group?
- Can I check ahead of time whether a host pool creation will fail on permissions?
instructions:
- text: Check host pool create permissions for subscription {subscriptionId} in resource group {resourceGroupName} with workspace {workspaceResourceId}.
slots:
resourceGroupName: query.resourceGroupName
subscriptionId: path.subscriptionId
workspaceResourceId: query.workspaceResourceId
- text: Run the host pool creation preflight for subscription {subscriptionId} in resource group {resourceGroupName}, linking workspace {workspaceResourceId}.
slots:
resourceGroupName: query.resourceGroupName
subscriptionId: path.subscriptionId
workspaceResourceId: query.workspaceResourceId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/preflight/permissions/session-host-create'].get
update:
x-apievangelist-phrasing:
intent: Preflight permissions to provision session hosts
effect: read
questions:
- Can the service principal create session host VMs, NICs and disks and join the subnet I picked?
- Will provisioning session hosts from a gallery image version fail because of missing permissions?
instructions:
- text: Check session host permissions in {subscriptionId} for group {resourceGroupName}, subnet {subnetResourceId}, image {imageVersionResourceId}.
slots:
subscriptionId: path.subscriptionId
resourceGroupName: query.resourceGroupName
subnetResourceId: query.subnetResourceId
imageVersionResourceId: query.imageVersionResourceId
- text: Preflight session host VM provisioning in subscription {subscriptionId} for the host pool in resource group {hostPoolResourceGroupName}.
slots:
subscriptionId: path.subscriptionId
hostPoolResourceGroupName: query.hostPoolResourceGroupName
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/virtual-networks'].get
update:
x-apievangelist-phrasing:
intent: Look up virtual networks in a subscription
effect: read
questions:
- Which virtual networks in my subscription can I place session hosts in?
- What VNets does Azure report for this subscription?
instructions:
- text: List the virtual networks in subscription {subscriptionId}.
slots:
subscriptionId: path.subscriptionId
- text: Find virtual networks in subscription {subscriptionId} matching {filter}.
slots:
filter: query.filter
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/virtual-machines'].get
update:
x-apievangelist-phrasing:
intent: Look up VMs to promote to a master image
effect: read
questions:
- Which existing virtual machines in my subscription could I promote to a Master Image?
- Does the VM lookup include machines DaaS IQ doesn't manage?
instructions:
- text: List the Azure virtual machines in subscription {subscriptionId}.
slots:
subscriptionId: path.subscriptionId
- text: Find a VM in subscription {subscriptionId} matching {filter} that I can turn into a master image.
slots:
filter: query.filter
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/galleries'].get
update:
x-apievangelist-phrasing:
intent: Look up Azure Compute Galleries
effect: read
questions:
- What Azure Compute Galleries exist in my subscription?
- Where are my image galleries, before I drill into image definitions?
instructions:
- text: List the compute galleries in subscription {subscriptionId}.
slots:
subscriptionId: path.subscriptionId
- text: Show image galleries in subscription {subscriptionId} sorted by {sort}.
slots:
sort: query.sort
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/lookup/resource-groups'].get
update:
x-apievangelist-phrasing:
intent: Look up resource groups in a subscription
effect: read
questions:
- Which resource groups can I create new resources in for this subscription?
- Can I filter the Azure resource groups in a subscription by name?
instructions:
- text: List the resource groups in subscription {subscriptionId}.
slots:
subscriptionId: path.subscriptionId
- text: Find resource groups in subscription {subscriptionId} matching {filter}.
slots:
filter: query.filter
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/workspaces'].get
update:
x-apievangelist-phrasing:
intent: Look up AVD workspaces in a subscription
effect: read
questions:
- Which AVD workspaces exist in my Azure subscription right now?
- What workspace should I link a new host pool to?
instructions:
- text: Look up the AVD workspaces in subscription {subscriptionId}.
slots:
subscriptionId: path.subscriptionId
- text: Find AVD workspaces in subscription {subscriptionId} matching {filter}.
slots:
filter: query.filter
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/managed-images'].get
update:
x-apievangelist-phrasing:
intent: Look up standalone managed images
effect: read
questions:
- What standalone managed images do I have outside of any gallery?
- Which managed images in my subscription are HyperV generation 2?
instructions:
- text: List the managed images in subscription {subscriptionId}.
slots:
subscriptionId: path.subscriptionId
- text: Find managed images in subscription {subscriptionId} matching {filter}.
slots:
filter: query.filter
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/gallery-images'].get
update:
x-apievangelist-phrasing:
intent: Look up gallery image definitions
effect: read
questions:
- What image definitions are inside my compute galleries?
- Which named gallery images exist, before I pick a version?
instructions:
- text: List gallery image definitions in subscription {subscriptionId}.
slots:
subscriptionId: path.subscriptionId
- text: Find gallery image definitions in subscription {subscriptionId} matching {filter}.
slots:
filter: query.filter
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{subscriptionId}/lookup/resources/gallery-image-versions'].get
update:
x-apievangelist-phrasing:
intent: Look up published gallery image versions
effect: read
questions:
- Which published image versions can I deploy session hosts from?
- What concrete versions exist for my gallery image definitions?
instructions:
- text: List the gallery image versions in subscription {subscriptionId}.
slots:
subscriptionId: path.subscriptionId
- text: Find deployable image versions in subscription {subscriptionId} matching {filter}.
slots:
filter: query.filter
subscriptionId: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}/resources/discover'].get
update:
x-apievangelist-phrasing:
intent: Discover resources by type in a subscription (deprecated)
effect: read
questions:
- Can I discover cloud resources of specific types through the older subscription-level discovery call?
- What resource types can the deprecated subscription discovery endpoint return?
instructions:
- text: Discover resources of types {types} in subscription {id} using the legacy endpoint.
slots:
id: path.id
types: query.types
- text: Run deprecated resource discovery on subscription {id} for {types}.
slots:
id: path.id
types: query.types
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}/resources/discover/hostpools'].get
update:
x-apievangelist-phrasing:
intent: Discover host pools in a subscription (deprecated)
effect: read
questions:
- Which Azure host pools could I import from a subscription using the old discovery endpoint?
- Is there a legacy way to find host pools in one subscription that aren't onboarded yet?
instructions:
- text: Discover host pools in subscription {id} with the deprecated discovery call.
slots:
id: path.id
- text: Find importable host pools in subscription {id} matching {filter}.
slots:
filter: query.filter
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}/resources/discover/images'].get
update:
x-apievangelist-phrasing:
intent: Discover images in a subscription (deprecated)
effect: read
questions:
- Can I find image metadata in a subscription using the older discovery endpoint?
- Which images does the legacy subscription discovery turn up?
instructions:
- text: Discover images in subscription {id} with the deprecated discovery call.
slots:
id: path.id
- text: Show page {page} of legacy image discovery results for subscription {id}.
slots:
id: path.id
page: query.page
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}/resources/import'].post
update:
x-apievangelist-phrasing:
intent: Import discovered resources into management (deprecated)
effect: write
questions:
- Can I import every discovered resource from a subscription in one background job?
- How do I bring specific discovered resources under management with the old subscription import?
instructions:
- text: Import all resources from subscription {id} using the legacy import job.
slots:
id: path.id
- text: 'Start a deprecated import job for subscription {id} with these resources: {resources}.'
slots:
id: path.id
resources: requestBody.resources
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions'].get
update:
x-apievangelist-phrasing:
intent: List registered cloud subscriptions
effect: read
questions:
- Which cloud subscriptions are registered in my ControlUp organization?
- Can I list only the Azure subscriptions and see which tenant owns each?
instructions:
- text: List all cloud subscriptions in my organization.
- text: List the registered subscriptions for provider {provider}.
slots:
provider: query.provider
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions'].post
update:
x-apievangelist-phrasing:
intent: Register a cloud subscription (deprecated)
effect: write
questions:
- Can I still register a subscription directly with its own credentials instead of through a tenant?
- What do I need to add an Azure subscription with the older create endpoint?
instructions:
- text: Register subscription {providerSubscriptionId} as {name} on provider {provider} with auth type {authType} and credentials {credentials}.
slots:
authType: requestBody.authType
credentials: requestBody.credentials
name: requestBody.name
provider: requestBody.provider
providerSubscriptionId: requestBody.providerSubscriptionId
- text: Use the deprecated create call to add subscription {providerSubscriptionId} named {name}.
slots:
name: requestBody.name
providerSubscriptionId: requestBody.providerSubscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a subscription by ID
effect: read
questions:
- What is the lifecycle state and owning tenant of one specific subscription?
- Can I fetch a single subscription's provider identifiers by its ID?
instructions:
- text: Get subscription {id}.
slots:
id: path.id
- text: Show the owning tenant and state of subscription {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}'].put
update:
x-apievangelist-phrasing:
intent: Replace a subscription's settings (deprecated)
effect: write
questions:
- Can I overwrite a subscription's name, provider ID and credentials in one full update?
- Is the full subscription update still supported or has it moved to tenant credentials?
instructions:
- text: 'Replace subscription {id}: name {name}, provider {provider}, ID {providerSubscriptionId}, auth {authType}, credentials {credentials}.'
slots:
authType: requestBody.authType
credentials: requestBody.credentials
id: path.id
name: requestBody.name
provider: requestBody.provider
providerSubscriptionId: requestBody.providerSubscriptionId
- text: Replace the configuration of subscription {id} using the legacy PUT, naming it {name}.
slots:
id: path.id
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a subscription and its resources (deprecated)
effect: destructive
questions:
- What gets removed when I delete a cloud subscription with the old endpoint?
- Can I remove a subscription and everything associated with it from ControlUp?
instructions:
- text: Delete subscription {id} and its associated resources.
slots:
id: path.id
- text: Remove subscription {id} using the deprecated delete call.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Rotate a subscription's credentials (deprecated)
effect: write
questions:
- How can I rotate the secret on a subscription without re-registering it?
- Can I rename a subscription while rotating its credentials?
instructions:
- text: Rotate the credentials on subscription {id} to {credentials}.
slots:
credentials: requestBody.credentials
id: path.id
- text: Rename subscription {id} to {name} with the legacy patch call.
slots:
id: path.id
name: requestBody.name
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}/status'].get
update:
x-apievangelist-phrasing:
intent: Get a subscription's health status (deprecated)
effect: read
questions:
- Is my subscription healthy according to the older status endpoint?
- What health state does the deprecated subscription status call report?
instructions:
- text: Get the current status of subscription {id}.
slots:
id: path.id
- text: Check subscription {id} health with the legacy status call.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/cloud/subscriptions/{id}/status/refresh'].post
update:
x-apievangelist-phrasing:
intent: Re-verify and refresh a subscription's status (deprecated)
effect: write
questions:
- Can I force a subscription's status to be re-checked now instead of waiting?
- After fixing credentials, how do I refresh the stored subscription status on the old endpoint?
instructions:
- text: Refresh the status of subscription {id}.
slots:
id: path.id
- text: Re-verify subscription {id} and update its stored status.
slots:
id: path.id
method: generated
generated: '2026-09-26'