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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'