ControlUp Master images API

The Master images API from ControlUp — 20 operation(s) for master images.

OpenAPI Specification

controlup-master-images-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DaaS IQ Master images API
  description: 'Multi-cloud Virtual Desktop Infrastructure Management API (Default Version: v1.0)


    🔒 **Authentication**


    This API supports two authentication methods:


    **1. API Key (Bearer Token)** - Recommended for programmatic access

    - Create an API key at [API Key Management](https://support.controlup.com/docs/create-an-api-key)

    - Include in requests: `Authorization: Bearer YOUR_API_KEY`


    **2. Cookie Authentication** - For browser-based access

    - Login via DEX authentication service

    - The `user_dex_token` cookie will be automatically included'
  contact:
    name: ControlUp Support
    url: https://controlup.com/support
    email: support@controlup.com
  version: v1
  x-build-version: 1.0.107
servers:
- url: https://api.controlup.com/daas-iq/v1
tags:
- name: Master images
paths:
  /cloud/master-images/{id}/actions:
    post:
      tags:
      - Master images
      summary: Execute an action on a master image
      description: Creates a background job to perform the action (start, stop). Poll the statusUrl for progress updates.
      operationId: ExecuteMasterImageAction
      parameters:
      - name: id
        in: path
        description: The unique identifier of the master image.
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: The action request containing the action type.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MasterImageActionRequest'
        required: true
      responses:
        '201':
          description: Action job created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCreatedDto'
              example:
                id: a1b2c3d4-5678-90ab-cdef-1234567890ab
                jobType: cloudResourceImport
                action: Cloud Resource Import
                jobUrl: https://api.example.com/api/v1/jobs/a1b2c3d4-5678-90ab-cdef-1234567890ab
                statusUrl: https://api.example.com/api/v1/jobs/a1b2c3d4-5678-90ab-cdef-1234567890ab/status
                logsUrl: https://api.example.com/api/v1/jobs/a1b2c3d4-5678-90ab-cdef-1234567890ab/logs
                message: Import job created successfully. Poll statusUrl for progress updates.
        '400':
          description: Bad request. Invalid request parameters or action not applicable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized. User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required. No active license for the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden. User does not have permission to manage settings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found. Master image does not exist or does not belong to the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service unavailable. License status could not be verified. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - BearerAuth: []
      - CookieAuth: []
  /cloud/master-images/{id}/rdp:
    get:
      tags:
      - Master images
      summary: Download an RDP file for a master image
      description: 'Returns a downloadable .rdp connection descriptor for the master image''s VM, built from its resolvable connection address.

        Returns a file attachment rather than JSON, and only generates the descriptor — it does not start the VM,

        open a session, or supply credentials.'
      operationId: GetMasterImageRdpFile
      parameters:
      - name: id
        in: path
        description: The unique identifier of the master image.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: RDP file generated successfully.
        '400':
          description: Bad request. Master image has no resolvable connection address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized. User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required. No active license for the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden. User does not have permission to manage settings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found. Master image does not exist or does not belong to the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service unavailable. License status could not be verified. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - BearerAuth: []
      - CookieAuth: []
  /cloud/master-images/os-families:
    get:
      tags:
      - Master images
      summary: Get supported OS families for Master Images
      description: 'Returns the fixed set of operating system families that Azure Virtual Desktop supports, as id and display name.

        A static catalog containing no organization data; the values populate the OS family choice when promoting a VM.'
      operationId: GetOsFamilies
      responses:
        '200':
          description: Successfully retrieved the list of supported OS families.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OsFamilyDto'
              example:
              - value: windows10MultiSession
                displayName: Windows 10 Enterprise Multi-Session
              - value: windows10Enterprise
                displayName: Windows 10 Enterprise
              - value: windows11MultiSession
                displayName: Windows 11 Enterprise Multi-Session
              - value: windows11Enterprise
                displayName: Windows 11 Enterprise
              - value: windowsServer2016
                displayName: Windows Server 2016
              - value: windowsServer2019
                displayName: Windows Server 2019
              - value: windowsServer2022
                displayName: Windows Server 2022
              - value: windowsServer2025
                displayName: Windows Server 2025
        '401':
          description: Unauthorized. User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required. No active license for the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden. User does not have view permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service unavailable. License status could not be verified. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - BearerAuth: []
      - CookieAuth: []
  /cloud/master-images/marketplace-images:
    get:
      tags:
      - Master images
      summary: Get curated Marketplace images for deployment
      description: 'Returns the curated catalog of Azure Marketplace OS images that can be deployed as new Master Images,

        all of them Gen 2, Generalized, and TrustedLaunch.

        A static catalog rather than anything the organization owns, and deliberately narrower than the full Azure Marketplace.'
      operationId: GetMarketplaceImages
      responses:
        '200':
          description: Successfully retrieved the list of marketplace images.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarketplaceImageDto'
              example:
              - id: win11-multisession-gen2
                displayName: Windows 11 Enterprise Multi-Session, Gen 2
                osFamily: windows11MultiSession
                securityType: trustedLaunch
                diskControllerTypes:
                - SCSI
                publisher: MicrosoftWindowsDesktop
                offer: windows-11
                sku: win11-24h2-avd
                version: latest
              - id: server-2022-gen2
                displayName: Windows Server 2022, Gen 2
                osFamily: windowsServer2022
                securityType: trustedLaunch
                diskControllerTypes:
                - SCSI
                publisher: MicrosoftWindowsServer
                offer: WindowsServer
                sku: 2022-datacenter-g2
                version: latest
        '401':
          description: Unauthorized. User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required. No active license for the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden. User does not have view permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service unavailable. License status could not be verified. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - BearerAuth: []
      - CookieAuth: []
  /cloud/master-images:
    get:
      tags:
      - Master images
      summary: List Master Images
      description: 'Returns one row per managed Master Image in the organization, paginated and sorted, each with status, power state,

        OS family and version, source type, region, gallery wiring, and latest published version.

        No version history and no indication of which operations are currently running.'
      operationId: ListMasterImages
      parameters:
      - name: sort
        in: query
        description: 'Sort expression.


          Format:

          field:direction,otherField:direction


          Directions: asc, desc, ascending, descending — defaults to ascending when omitted


          Fields (names are matched case-insensitively):

          createdAt, lastUpdated, latestPublishedVersion, latestVersion, name, osFamily, osVersion, region, sourceType, status


          Default when omitted: lastUpdated:desc.'
        schema:
          maxLength: 256
          type: string
          example: name:asc,lastUpdated:desc
        examples:
          default:
            summary: default
            value: lastUpdated:desc
        x-foundry-sort:
          fields:
          - createdAt
          - lastUpdated
          - latestPublishedVersion
          - latestVersion
          - name
          - osFamily
          - osVersion
          - region
          - sourceType
          - status
          dynamicPaths: false
          defaultField: lastUpdated
          defaultAscending: false
      - name: page
        in: query
        description: 'The page number to retrieve (1-based). Default: 1.'
        schema:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: 'The number of items per page (1-100). Default: 50.'
        schema:
          maximum: 100
          minimum: 1
          type: integer
          format: int32
      responses:
        '200':
          description: Successfully retrieved Master Images.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MasterImageDtoPagedResultDto'
              example:
                items:
                - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  name: Finance-Gold-Master
                  description: Q1 2026 Base Image
                  osFamily: windows11MultiSession
                  osVersion: 23H2
                  status: ready
                  powerState: unknown
                  sourceType: promotedVm
                  region: eastus
                  vmResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Compute/virtualMachines/vm-finance-gold
                  subscriptionId: 9be25f1b-d323-477a-984a-935f6346e47a
                  subnetResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Network/virtualNetworks/vnet-avd/subnets/default
                  acgDefinitionResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/rg-controlup-daas/providers/Microsoft.Compute/galleries/ControlUp_DaaS_Gallery/images/Finance-Gold-Master
                  latestVersion: 1.0.4
                  latestPublishedVersion: 1.0.3
                  targetRegions:
                  - eastus
                  - westeurope
                  createdBy: ''
                  createdAt: '0001-01-01T00:00:00'
                  lastUpdated: '2026-03-10T22:14:14Z'
                - id: 493d4e21-85b2-41dd-b580-b1c95bf91968
                  name: Win11-HR-Master
                  description: HR department base image
                  osFamily: windows11MultiSession
                  osVersion: 23H2
                  status: deploying
                  powerState: unknown
                  sourceType: deployedFromGallery
                  region: eastus2
                  vmResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/rg-controlup-daas/providers/Microsoft.Compute/virtualMachines/win11-hr-master
                  subscriptionId: 9be25f1b-d323-477a-984a-935f6346e47a
                  subnetResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/rg-controlup-daas/providers/Microsoft.Network/virtualNetworks/vnet-prod/subnets/avd-hosts
                  acgDefinitionResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/rg-controlup-daas/providers/Microsoft.Compute/galleries/AVDGoldenImageGallery/images/Win11-HR-Master
                  latestVersion: 1.0.0
                  latestPublishedVersion: 1.0.0
                  targetRegions:
                  - eastus2
                  createdBy: ''
                  createdAt: '0001-01-01T00:00:00'
                  lastUpdated: '2026-03-10T22:11:18Z'
                - id: c3d4e5f6-a1b2-7890-abcd-ef9876543210
                  name: Win10-Legacy-Master
                  osFamily: windows10MultiSession
                  osVersion: 22H2
                  status: error
                  statusMessage: VM not found in Azure (deleted externally)
                  powerState: unknown
                  sourceType: promotedVm
                  region: westus2
                  vmResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Compute/virtualMachines/vm-legacy-gold
                  subscriptionId: 9be25f1b-d323-477a-984a-935f6346e47a
                  targetRegions: []
                  createdBy: ''
                  createdAt: '0001-01-01T00:00:00'
                  lastUpdated: '2026-03-12T14:30:00Z'
                - id: d4e5f6a1-b2c3-7890-abcd-ef0123456789
                  name: Orphaned-Gold-Master
                  description: Image whose owning subscription was removed
                  osFamily: windows11MultiSession
                  osVersion: 23H2
                  status: error
                  statusMessage: The owning subscription was removed. Reimport the subscription to restore management of this image.
                  powerState: unknown
                  sourceType: promotedVm
                  region: eastus
                  vmResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Compute/virtualMachines/vm-orphaned-gold
                  subscriptionId: 4f1d9b6a-3c2e-4d8a-9f7b-2a1c0e5d4b3a
                  targetRegions: []
                  createdBy: admin@contoso.com
                  createdAt: '2026-02-20T09:00:00Z'
                  lastUpdated: '2026-03-12T14:30:00Z'
                page: 1
                pageSize: 25
                count: 4
                hasMore: false
                totalCount: 4
        '400':
          description: Bad request. Invalid pagination or sort parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized. User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required. No active license for the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden. User does not have view permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service unavailable. License status could not be verified. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - BearerAuth: []
      - CookieAuth: []
  /cloud/master-images/{id}:
    get:
      tags:
      - Master images
      summary: Get Master Image by ID
      description: 'Returns one Master Image in the same shape as a list row: name, OS, status and power state, source type, region,

        VM and gallery resource IDs, disk and security settings, and latest published version.

        The image itself — not which operations run or are permitted, and not its published versions.'
      operationId: GetMasterImage
      parameters:
      - name: id
        in: path
        description: The Master Image identifier
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successfully retrieved the Master Image.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MasterImageDto'
              example:
                id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                name: Finance-Gold-Master
                description: Q1 2026 Base Image
                osFamily: windows11MultiSession
                osVersion: 23H2
                status: ready
                powerState: unknown
                sourceType: promotedVm
                region: eastus
                vmResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Compute/virtualMachines/vm-finance-gold
                subscriptionId: 9be25f1b-d323-477a-984a-935f6346e47a
                subnetResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Network/virtualNetworks/vnet-avd/subnets/default
                virtualNetworkResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Network/virtualNetworks/vnet-avd
                acgDefinitionResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/rg-controlup-daas/providers/Microsoft.Compute/galleries/ControlUp_DaaS_Gallery/images/Finance-Gold-Master
                latestVersion: 1.0.1
                latestPublishedVersion: 1.0.0
                targetRegions:
                - eastus
                - westeurope
                resourceGroup: RG-AVD-Lab
                vmSize: Standard_D2s_v5
                osDiskType: Premium_LRS
                osDiskSizeGiB: 128
                securityType: trustedLaunch
                secureBoot: true
                vTpm: true
                integrityMonitoring: false
                hyperVGeneration: V2
                cpuArchitectureType: x64
                galleryName: ControlUp_DaaS_Gallery
                publisher: ControlUp
                offer: windows-11-multisession
                sku: finance-gold-master
                createdBy: admin@contoso.com
                createdAt: '2026-03-01T10:00:00Z'
                lastUpdated: '2026-03-10T22:14:14Z'
        '401':
          description: Unauthorized. User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required. No active license for the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden. User does not have view permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found. The specified Master Image does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service unavailable. License status could not be verified. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - BearerAuth: []
      - CookieAuth: []
  /cloud/master-images/{id}/operation-state:
    get:
      tags:
      - Master images
      summary: Get Master Image operation state
      description: 'Returns the image''s single in-flight operation, if any, plus server-computed flags for the actions it now permits.

        Trust these flags rather than inferring availability from lifecycle and power-state fields.

        Covers the image as a whole, not any individual published version.'
      operationId: GetOperationState
      parameters:
      - name: id
        in: path
        description: The Master Image identifier
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successfully retrieved the Master Image operation state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MasterImageOperationStateDto'
        '401':
          description: Unauthorized. User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required. No active license for the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden. User does not have view permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found. The specified Master Image does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service unavailable. License status could not be verified. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - BearerAuth: []
      - CookieAuth: []
  /cloud/master-images/{id}/decommission-plan:
    get:
      tags:
      - Master images
      summary: Get decommission plan
      description: 'Previews what retiring the whole Master Image would delete or retain — VM, disks, gallery definition,

        related Azure resources — with any warnings.

        A read-only dry run covering the whole image, not the leftovers of a single publish.'
      operationId: GetDecommissionPlan
      parameters:
      - name: id
        in: path
        description: The Master Image identifier
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successfully built the decommission plan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MasterImageDecommissionPlanDto'
              example:
                masterImageId: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                masterImageName: Finance-Gold-Master
                sourceType: deployedFromGallery
                resources:
                - resourceType: galleryImageVersion
                  resourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/rg-controlup-daas/providers/Microsoft.Compute/galleries/ControlUp_DaaS_Gallery/images/Finance-Gold-Master/versions/1.0.0
                  name: 1.0.0
                  ownership: foundryCreated
                  decommissionAction: delete
                  reason: Image version was created by Foundry and can be deleted during decommission.
                  existenceStatus: exists
                  portalUrl: https://portal.azure.com/#@contoso.onmicrosoft.com/resource/subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/rg-controlup-daas/providers/Microsoft.Compute/galleries/ControlUp_DaaS_Gallery/images/Finance-Gold-Master/versions/1.0.0
                - resourceType: subnet
                  resourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Network/virtualNetworks/vnet-avd/subnets/default
                  name: default
                  ownership: customerOrShared
                  decommissionAction: retain
                  reason: Subnet may be shared by other resources and is retained.
                  existenceStatus: notChecked
                  portalUrl: https://portal.azure.com/#@contoso.onmicrosoft.com/resource/subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Network/virtualNetworks/vnet-avd/subnets/default
                warnings: []
        '401':
          description: Unauthorized. User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required. No active license for the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden. User does not have view permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found. The specified Master Image does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service unavailable. License status could not be verified. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - BearerAuth: []
      - CookieAuth: []
  /cloud/master-images/promote:
    post:
      tags:
      - Master images
      summary: Promote existing VM as Master Image
      description: 'Creates a new Master Image by registering an existing Azure VM.

        Creates a corresponding Image Definition in the specified Azure Compute Gallery.

        The VM must be Gen 2 (Trusted Launch) and not already imported.'
      operationId: PromoteVmToMasterImage
      requestBody:
        description: The promote request containing VM resource ID and metadata
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PromoteMasterImageRequest'
            example:
              subscriptionId: 9be25f1b-d323-477a-984a-935f6346e47a
              vmResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Compute/virtualMachines/vm-finance-gold
              name: Finance-Gold-Master
              description: Q1 2026 Base Image
              osFamily: windows11MultiSession
              osVersion: 23H2
              publisher: ControlUp
              offer: windows-11-multisession
              sku: win11-hr-master
        required: true
      responses:
        '201':
          description: Successfully created the Master Image.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MasterImageDto'
              example:
                id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                name: Finance-Gold-Master
                description: Q1 2026 Base Image
                osFamily: windows11MultiSession
                osVersion: 23H2
                status: ready
                powerState: unknown
                sourceType: promotedVm
                region: eastus
                vmResourceId: /subscriptions/25ae2df7-d61d-4cb0-a746-4b67e1cf8535/resourceGroups/RG-AVD-Lab/providers/Microsoft.Compute/virtualMachines/vm-fi

# --- truncated at 32 KB (121 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/controlup/refs/heads/main/openapi/controlup-master-images-api-openapi.yml