ControlUp Cloud providers API
The Cloud providers API from ControlUp — 3 operation(s) for cloud providers.
The Cloud providers API from ControlUp — 3 operation(s) for cloud providers.
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