CloudQuery onboardings API

The onboardings API from CloudQuery — 21 operation(s) for onboardings.

Operations 21

POST /onboardings/aws/oidc #
GET /onboardings/aws/oidc/{onboarding_id} #
POST /onboardings/aws/oidc/{onboarding_id}/notify #
GET /onboardings/aws/oidc/{onboarding_id}/accounts #
GET /onboardings/aws/oidc/{onboarding_id}/accounts/{aws_orgunit_id} #
POST /onboardings/aws/oidc/{onboarding_id}/accounts/provision #
POST /onboardings/aws/cur #
GET /onboardings/aws/cur/{onboarding_id} #
POST /onboardings/aws/cur/{onboarding_id}/notify #
POST /onboardings/aws/cur/{onboarding_id}/verify #
POST /onboardings/aws/unified #
GET /onboardings/aws/unified/{onboarding_id} #
POST /onboardings/aws/unified/{onboarding_id}/notify #
GET /onboardings/aws/unified/{onboarding_id}/accounts #
GET /onboardings/aws/unified/{onboarding_id}/accounts/{aws_orgunit_id} #
POST /onboardings/aws/unified/{onboarding_id}/accounts/provision #
POST /onboardings/aws/unified/{onboarding_id}/verify-cur #
POST /onboardings/aws/unified/{onboarding_id}/test-connections #
POST /onboardings/aws/unified/{onboarding_id}/integrations #
POST /aws/unified/test-connections #
POST /aws/unified/integrations #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cloudquery-onboardings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cloudquery-onboardings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@cloudquery.io
    name: CloudQuery Support Team
    url: https://cloudquery.io
  description: 'Welcome to the CloudQuery Platform API documentation! This API can be used to interact with the CloudQuery platform. As a user, the API allows you to search the CloudQuery asset inventory, run SQL queries against the data warehouse, save and load searches, and much more. As an administrator, it allows you to manage your teams, syncs, and other objects.

    ### Authentication

    The API is secured using bearer tokens. To get started, you can generate an API key for your Platform deployment from your platform dashboard. For a step-by-step guide, see: https://www.cloudquery.io/docs/cli/managing-cloudquery/deployments/generate-api-key.

    The base URL for the API depends on where your CloudQuery Platform is hosted. If running locally, this is usually http://localhost:3000/api. In a production deployment it should be an HTTPS URL. For purposes of illustration, we will assume the platform instance is available at https://cloudquery.mycompany.com. In this case, the base API endpoint will be https://cloudquery.mycompany.com/api.

    ### Example Request

    To test your connection to the API, we can use the `/plugins` endpoint. For example:

    `curl -v -H "Authorization: Bearer $CLOUDQUERY_API_KEY" \ https://cloudquery.mycompany.com/api/plugins`

    '
  license:
    name: MIT
    url: https://spdx.org/licenses/MIT
  termsOfService: https://www.cloudquery.io/terms
  title: CloudQuery Platform OpenAPI Spec admin Onboardings API
  version: 1.0.0
servers:
- url: https://api.cloudquery.io
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- bearerAuth: []
- cookieAuth: []
tags:
- name: onboardings
paths:
  /onboardings/aws/oidc:
    post:
      operationId: PlatformCreateAWSOnboarding
      description: Create an interactive onboarding for AWS
      tags:
      - onboardings
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - single_account
              properties:
                single_account:
                  type: boolean
                  description: 'Specifies the type of onboarding to create: either a single account onboarding or an organization onboarding

                    '
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSCreateResponse'
          description: Created
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/oidc/{onboarding_id}:
    get:
      operationId: PlatformGetAWSOnboarding
      description: Query an interactive onboarding for AWS
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      tags:
      - onboardings
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWS'
          description: OK
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/oidc/{onboarding_id}/notify:
    post:
      operationId: PlatformNotifyOnboarding
      description: Update onboarding state
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformOnboardingAWSNotification'
      responses:
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/oidc/{onboarding_id}/accounts:
    get:
      operationId: PlatformGetAWSAccountsInRoot
      description: Query AWS accounts under organization root
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      tags:
      - onboardings
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSAccounts'
          description: OK
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/oidc/{onboarding_id}/accounts/{aws_orgunit_id}:
    get:
      operationId: PlatformGetAWSAccountsInParent
      description: Query AWS accounts under a specifc Organizational Unit
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      - $ref: '#/components/parameters/platform_aws_orgunit_id'
      tags:
      - onboardings
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSAccounts'
          description: OK
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/oidc/{onboarding_id}/accounts/provision:
    post:
      operationId: PlatformProvisionOnboardingConfiguration
      description: Provision onboarding configuration into the cloud account
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformOnboardingAWSProvision'
      responses:
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/cur:
    post:
      operationId: PlatformCreateAWSCUROnboarding
      description: Create an interactive onboarding for AWS CUR
      tags:
      - onboardings
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSCURCreateResponse'
          description: Created
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/cur/{onboarding_id}:
    get:
      operationId: PlatformGetAWSCUROnboarding
      description: Query an interactive onboarding for AWS CUR
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      tags:
      - onboardings
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSCUR'
          description: OK
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/cur/{onboarding_id}/notify:
    post:
      operationId: PlatformNotifyAWSCUROnboarding
      description: Update AWS CUR onboarding state
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformOnboardingAWSCURNotification'
      responses:
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/cur/{onboarding_id}/verify:
    post:
      operationId: PlatformVerifyAWSCUROnboarding
      description: Trigger verification of the AWS CUR onboarding
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      responses:
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/unified:
    post:
      operationId: PlatformCreateAWSUnifiedOnboarding
      description: Create a unified composable onboarding for AWS
      tags:
      - onboardings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedCreateRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedCreateResponse'
          description: Created
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/unified/{onboarding_id}:
    get:
      operationId: PlatformGetAWSUnifiedOnboarding
      description: Query a unified AWS onboarding
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSUnified'
          description: OK
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/unified/{onboarding_id}/notify:
    post:
      operationId: PlatformNotifyAWSUnifiedOnboarding
      description: Update unified AWS onboarding state via CloudFormation callback
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedNotification'
      responses:
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/unified/{onboarding_id}/accounts:
    get:
      operationId: PlatformGetAWSUnifiedAccountsInRoot
      description: Query AWS accounts under the organization root (requires asset_inventory feature)
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSAccounts'
          description: OK
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/unified/{onboarding_id}/accounts/{aws_orgunit_id}:
    get:
      operationId: PlatformGetAWSUnifiedAccountsInParent
      description: Query AWS accounts under a specific Organizational Unit
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      - name: aws_orgunit_id
        in: path
        required: true
        description: Organizational Unit ID
        schema:
          type: string
          x-go-name: OrganizationalUnitID
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSAccounts'
          description: OK
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/unified/{onboarding_id}/accounts/provision:
    post:
      operationId: PlatformProvisionUnifiedOnboardingConfiguration
      description: Provision sync roles into selected AWS accounts (requires asset_inventory feature)
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformOnboardingAWSProvision'
      responses:
        '202':
          description: Provisioning started
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/unified/{onboarding_id}/verify-cur:
    post:
      operationId: PlatformVerifyAWSUnifiedCUR
      description: Verify CUR S3 access for the unified onboarding (requires cost_and_usage feature)
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      responses:
        '202':
          description: Verification started
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/unified/{onboarding_id}/test-connections:
    post:
      operationId: PlatformCreateAWSUnifiedTestConnections
      description: Create test connections for all enabled features in one call
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedTestConnectionsRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedTestConnectionsResponse'
          description: Created
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /onboardings/aws/unified/{onboarding_id}/integrations:
    post:
      operationId: PlatformCreateAWSUnifiedIntegrations
      description: Create integrations for all enabled features using completed test connections
      tags:
      - onboardings
      parameters:
      - $ref: '#/components/parameters/platform_onboarding_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedIntegrationsRequest'
      responses:
        '201':
          description: Integrations created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedIntegrationsResponse'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /aws/unified/test-connections:
    post:
      operationId: PlatformCreateAWSUnifiedTestConnectionsStandalone
      description: Create test connections for AWS unified features without an onboarding. Frontend is expected to provide a per-feature plugin spec (with ${ENV_VAR} placeholders for sensitive values like external_id) plus an env list containing the corresponding values.
      tags:
      - onboardings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformAWSUnifiedTestConnectionsRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedTestConnectionsResponse'
          description: Created
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /aws/unified/integrations:
    post:
      operationId: PlatformCreateAWSUnifiedIntegrationsStandalone
      description: 'Create AWS unified integrations from previously created standalone test connections (no onboarding). Like the onboarding-bound counterpart, this endpoint may create multiple syncs from a single request: asset_inventory creates a main sync plus a CloudTrail companion sync, additional_metadata creates a metadata sync, and cost_and_usage creates a CUR sync.'
      tags:
      - onboardings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformAWSUnifiedIntegrationsRequest'
      responses:
        '201':
          description: Integrations created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedIntegrationsResponse'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
components:
  responses:
    PlatformInternalError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformBasicError'
      description: Internal Error
    PlatformUnprocessableEntity:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformFieldError'
      description: UnprocessableEntity
    PlatformRequiresAuthentication:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformBasicError'
      description: Requires authentication
    PlatformNotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformBasicError'
      description: Resource not found
    PlatformBadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformFieldError'
      description: Bad request
  schemas:
    PlatformBaseNotification:
      type: object
      required:
      - status
      properties:
        status:
          type: string
    PlatformCompletedNotification:
      allOf:
      - $ref: '#/components/schemas/PlatformBaseNotification'
      - type: object
        required:
        - admin_role_arn
        - sync_role_name
        - organizational_units
        - skipped_accounts
        properties:
          status:
            enum:
            - completed
          admin_role_arn:
            type: string
          sync_role_name:
            type: string
          organizational_units:
            type: array
            items:
              type: string
          skipped_accounts:
            type: array
            items:
              type: string
          failed_accounts:
            type: number
          additional_stack_ids:
            type: array
            items:
              type: string
    PlatformDeployedNotification:
      allOf:
      - $ref: '#/components/schemas/PlatformBaseNotification'
      - type: object
        required:
        - management_role_arn
        - deployment_mode
        - stack_id
        properties:
          status:
            enum:
            - deployed
          management_role_arn:
            type: string
          deployment_mode:
            type: string
          stack_id:
            type: string
    PlatformOnboardingAWSUnifiedIntegrationConfig:
      type: object
      description: Per-feature configuration for a unified integration, containing only the test connection reference
      additionalProperties: false
      required:
      - test_connection_id
      properties:
        test_connection_id:
          type: string
          format: uuid
          x-go-name: TestConnectionID
    PlatformStartedNotification:
      allOf:
      - $ref: '#/components/schemas/PlatformBaseNotification'
      - type: object
        properties:
          status:
            enum:
            - started
    PlatformOnboardingAWSUnifiedTestConnectionsResponse:
      type: object
      description: Response with created test connections
      additionalProperties: false
      required:
      - test_connections
      properties:
        test_connections:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
            - feature
            - test_connection_id
            - plugin_path
            properties:
              feature:
                type: string
                enum:
                - asset_inventory
                - cost_and_usage
                - additional_metadata
              test_connection_id:
                type: string
                format: uuid
                x-go-name: TestConnectionID
              plugin_path:
                type: string
    PlatformOnboardingAWS:
      type: object
      description: AWS OpenID onboarding
      additionalProperties: false
      required:
      - id
      - stage
      - created_at
      - updated_at
      - issuer_url
      - audience
      - subject
      properties:
        id:
          $ref: '#/components/schemas/PlatformOnboardingID'
        stage:
          type: string
          description: Stage of the onboarding process
          x-go-name: OnboardingStage
        created_at:
          type: string
          format: date-time
          example: '2017-07-14T16:53:42Z'
        updated_at:
          type: string
          format: date-time
          example: '2017-07-14T16:53:42Z'
        issuer_url:
          type: string
          description: URL of the OpenID server to use when setting up a trust relationship
          x-go-name: IssuerURL
        audience:
          type: string
          description: OpenID audience claim for the trust realshionship
          x-go-name: Audience
        subject:
          type: string
          description: OpenID subject claim for the trust relationship
          x-go-name: Subject
        management_role_arn:
          type: string
          description: Role used to manage the platform onboarding
          x-go-name: ManagementRoleARN
        failure_reason:
          type: string
          description: CloudFormation stack errors
          x-go-name: FailureReason
        sync_role_name:
          type: string
          x-go-name: SyncRoleName
          description: '(organization mode) The name of the sync role used to sync a specific account within the organization.

            Note: This is the role name only, not the full ARN.

            '
        organizational_units:
          type: array
          x-go-name: OrganizationalUnitIDs
          description: '(organization mode) A list of Organizational Unit (OU) IDs included in this onboarding.

            '
          items:
            type: string
    PlatformOnboardingAWSCURNotification:
      oneOf:
      - $ref: '#/components/schemas/PlatformStartedNotification'
      - $ref: '#/components/schemas/PlatformRevokedNotification'
      - $ref: '#/components/schemas/PlatformFailedNotification'
      - $ref: '#/components/schemas/PlatformDeployedCURNotification'
      discriminator:
        propertyName: status
        mapping:
          started: '#/components/schemas/PlatformStartedNotification'
          revoked: '#/components/schemas/PlatformRevokedNotification'
          failed: '#/components/schemas/PlatformFailedNotification'
          deployed_cur: '#/components/schemas/PlatformDeployedCURNotification'
    PlatformOnboardingAWSUnifiedCreateResponse:
      type: object
      description: Response when creating a unified AWS onboarding
      additionalProperties: false
      required:
      - id
      - features
      - issuer_url
      - audience
      - subject
      - template_url
      - notify_path
      - notify_token
      properties:
        id:
          $ref: '#/components/schemas/PlatformOnboardingID'
        features:
          type: array
          items:
            type: string
            enum:
            - asset_inventory
            - cost_and_usage
            - additional_metadata
        region:
          type: string
          description: AWS region for stack deployment. Forced to us-east-1 when cost_and_usage is included.
        stack_name:
          type: string
          description: CloudFormation stack name to use
          maxLength: 128
        issuer_url:
          type: string
          description: URL of the OpenID server to use when setting up a trust relationship
          x-go-name: IssuerURL
        audience:
          type: string
          description: OpenID audience claim for the trust relationship
          x-go-name: Audience
        subject:
          type: string
          description: OpenID subject claim for the trust relationship
          x-go-name: Subject
        notify_path:
          type: string
          description: Path of the notify endpoint to use for status updates
          x-go-name: NotifyPath
        template_url:
          type: string
          description: URL of the composed CloudFormation template matching requested features
          x-go-name: TemplateURL
        notify_token:
          type: string
          description: Authentication token for notifications
    PlatformOrganizationalUnitID:
      description: ID of an organizational unit in AWS
      type: string
      example: ou-7f3s-j8zfa1ao
      pattern: ^ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}$
      x-pattern-message: must start with "ou-" followed by 4 to 32 lowercase letters or digits, then a second "-" dash, and finally 8 to 32 additional lowercase letters or digits
      x-go-name: OrganizationalUnitID
    PlatformDeployedCURNotification:
      allOf:
      - $ref: '#/components/schemas/PlatformBaseNotification'
      - type: object
        required:
        - main_role_arn
        - sync_role_arn
        - s3_bucket_name
        - s3_report_prefix
        - cur_report_name
        - stack_id
        properties:
          status:
            enum:
            - deployed_cur
          main_role_arn:
            type: string
          sync_role_arn:
            type: string
          s3_bucket_name:
            type: string
          s3_report_prefix:
            type: string
          cur_report_name:
            type: string
          stack_id:
            type: string
    PlatformAWSUnifiedIntegrationsRequest:
      type: object
      description: 'Request to create AWS unified integrations from previously created standalone test connections (no onboarding). Sub-integrations derive their names from the base name: asset_inventory creates -asset-inventory and -cloudtrail syncs, additional_metadata creates a -metadata sync, and cost_and_usage creates a -cost-and-usage sync.'
      additionalProperties: false
      required:
      - name
      - destination_names
      properties:
        name:
          type: string
          description: Base name for the integrations. Sub-integrations derive their names from this value.
        display_name:
          $ref: '#/components/schemas/PlatformDisplayName'
        destination_names:
          type: array
          items:
            type: string
        schedule:
          type: string
          description: Cron schedule for recurring syncs
        asset_inventory:
          $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedIntegrationConfig'
        cost_and_usage:
          $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedIntegrationConfig'
        additional_metadata:
          $ref: '#/components/schemas/PlatformOnboardingAWSUnifiedIntegrationConfig'
    PlatformOnboardingAWSUnifiedNotification:
      oneOf:
      - $ref: '#/components/schemas/PlatformStartedNotification'
      - $ref: '#/components/schemas/PlatformRevokedNotification'
      - $ref: '#/components/schemas/PlatformFailedNotification'
      - $ref: '#/components/schemas/PlatformDeployedUnifiedNotification'
      - $ref: '#/components/schemas/PlatformCompletedNotification'
      - $ref: '#/components/schemas/PlatformCompletedSingleAccountNotification'
      discriminator:
        propertyName: status
        mapping:
          started: '#/components/schemas/PlatformStartedNotification'
          revoked: '#/components/schemas/PlatformRevokedNotification'
          failed: '#/components/schemas/PlatformFailedNotification'
          deployed_unified: '#/components/schemas/PlatformDeployedUnifiedNotification'
          completed: '#/components/schemas/PlatformCompletedNotification'
          completed_account: '#/components/schemas/PlatformCompletedSingleAccountNotification'
    PlatformOnboardingAWSUnifiedTestConnectionsRequest:
      type: object
      description: Request to create test connections for all enabled features
      additionalProperties: false
      properties:
        asset_inventory:
          type: object
          description: Configuration for asset inventory test connection (regions, etc.)
          additionalProperties: true
        cost_and_usage:
          type: object
          description: Configuration for cost and usage test connection
          additionalProperties: true
        additional_metadata:
          type: object
          description: Configuration for additional metadata test connection
          additionalProperties: true
    PlatformSyncEnvCreate:
      type: object
      description: Environment variable. Environment variables are assumed to be secret.
      required:
      - name
      properties:
        name:
          type: string
          description: Name of the environment variable
        value:
          type: string
          description: Value of the environment variable
    PlatformOnboardingAWSCUR:
      type: object
      description: AWS CUR onboarding
      additionalProperties: false
      required:
      - id
      - stage
      - created_at
      - updated_at
      - issu

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cloudquery/refs/heads/main/openapi/cloudquery-onboardings-api-openapi.yml