ControlUp Cloud providers API

The Cloud providers API from ControlUp — 3 operation(s) for cloud providers.

OpenAPI Specification

controlup-cloud-providers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DaaS IQ Cloud providers 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: Cloud providers
paths:
  /cloud/providers:
    get:
      tags:
      - Cloud providers
      summary: Get supported cloud providers
      description: 'Returns the cloud providers this platform can integrate with, together with their display names.

        A static capability catalog describing what the product supports — not which providers the caller''s

        organization has actually onboarded.'
      operationId: GetProviders
      responses:
        '200':
          description: Successfully retrieved the list of supported cloud providers.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudProviderDto'
        '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 subscription management 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/providers/auth-types:
    get:
      tags:
      - Cloud providers
      summary: Get supported authentication types
      description: 'Returns the union of authentication types across every supported cloud provider.

        The unfiltered catalog: because entries span providers, not everything returned is valid for any one

        provider. Narrow to a single provider when the provider is already known.'
      operationId: GetAllAuthTypes
      responses:
        '200':
          description: Successfully retrieved the list of supported authentication types.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudProviderAuthTypeDto'
        '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 subscription management 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/providers/{provider}/auth-types:
    get:
      tags:
      - Cloud providers
      summary: Get authentication types for a provider
      description: 'Returns only the authentication types valid for one named provider — the set to offer once a provider has

        been chosen, and the input a tenant or credential must be configured against.'
      operationId: GetProviderAuthTypes
      parameters:
      - name: provider
        in: path
        description: The cloud provider identifier (e.g., Azure = 1).
        required: true
        schema:
          $ref: '#/components/schemas/CloudProvider'
      responses:
        '200':
          description: Successfully retrieved the authentication types for the specified provider.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CloudProviderAuthTypeDto'
        '400':
          description: Bad request. Invalid provider identifier.
          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 subscription management permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found. The specified cloud provider is not supported.
          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: []
components:
  schemas:
    ErrorResponse:
      required:
      - status
      - title
      - traceId
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          description: A URI reference that identifies the problem type.
        title:
          type: string
          description: A short, human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code.
          format: int32
        detail:
          type:
          - string
          - 'null'
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type:
          - string
          - 'null'
          description: A URI reference that identifies the specific occurrence of the problem.
        errors:
          type:
          - object
          - 'null'
          additionalProperties:
            type: array
            items:
              type: string
          description: 'Dictionary of field-specific validation errors (only present for validation failures).

            Key is the field name, value is an array of error messages for that field.'
        traceId:
          type: string
          description: Request ID (cu-request-id) for tracking and debugging purposes.
      additionalProperties: false
      description: 'Standard error body the API returns when a request fails validation or cannot be completed.

        Follows RFC 7807 Problem Details with additional `errors` and `traceId` fields.'
    CloudProvider:
      enum:
      - azure
      type: string
      description: Enumeration of supported cloud provider identifiers.
    CloudProviderAuthTypeDto:
      required:
      - authType
      - description
      - displayName
      - provider
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/CloudProvider'
        authType:
          $ref: '#/components/schemas/CloudProviderAuthType'
        displayName:
          type: string
          description: Human-readable display name for this authentication type.
        description:
          type: string
          description: Detailed description of this authentication type.
      additionalProperties: false
      description: Data Transfer Object for cloud provider authentication type information.
    CloudProviderDto:
      required:
      - displayName
      - provider
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/CloudProvider'
        displayName:
          type: string
          description: Human-readable display name for the cloud provider.
      additionalProperties: false
      description: Data Transfer Object for cloud provider information.
    CloudProviderAuthType:
      enum:
      - azureServicePrincipal
      - azureServicePrincipalCertificate
      type: string
      description: Specifies the supported authentication types for connecting to various cloud providers and services.
  securitySchemes:
    BearerAuth:
      type: http
      description: '**API Key Authentication** (Recommended)


        [Learn how to create an API key](https://api.controlup.io/reference/how-to-create-api-keys).'
      scheme: bearer
      bearerFormat: JWT
    CookieAuth:
      type: apiKey
      description: '**Cookie Authentication** (Browser use)


        ⚠️ The ''Authorize'' button cannot set cookies due to browser security.


        To authenticate in browser:

        1. Login via DEX authentication service (same browser session)

        2. Or use DevTools Console: `document.cookie = "user_dex_token=YOUR_TOKEN; path=/"`'
      name: user_dex_token
      in: cookie
x-readme:
  explorer-enabled: true
  proxy-enabled: false
  samples-languages:
  - shell
  - powershell
  - node
  - javascript
  - python
  - c
  - clojure
  - cplusplus
  - csharp
  - http
  - go
  - java
  - json
  - kotlin
  - objectivec
  - ocaml
  - php
  - r
  - ruby
  - swift