Pulumi CloudSetup API

The CloudSetup API from Pulumi — 10 operation(s) for cloudsetup.

OpenAPI Specification

pulumi-cloudsetup-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: APIs and Definitions for the Pulumi Cloud product.
  title: Pulumi APIs AccessTokens CloudSetup API
  version: 1.0.0
tags:
- name: CloudSetup
paths:
  /api/esc/cloudsetup/{orgName}/aws/setup:
    post:
      description: Sets up AWS infrastructure using provided static credentials
      operationId: AWSSetup
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AWSSetupRequest'
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudSetupResult'
          description: OK
        '400':
          description: Failed to setup infrastructure
      summary: AWSSetup
      tags:
      - CloudSetup
  /api/esc/cloudsetup/{orgName}/aws/sso/accounts:
    get:
      description: Lists AWS accounts accessible with the provided session
      operationId: AWSSSOListAccounts
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      - description: The AWS region
        in: query
        name: region
        schema:
          type: string
      - description: The SSO session identifier
        in: query
        name: sessionId
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCloudAccountsResponse'
          description: OK
        '400':
          description: Failed to list accounts
        '404':
          description: Organization or Session not found
        '412':
          description: Session not yet authorized
      summary: AWSSSOListAccounts
      tags:
      - CloudSetup
  /api/esc/cloudsetup/{orgName}/aws/sso/initiate:
    post:
      description: Initiates the AWS SSO flow
      operationId: AWSSSOInitiate
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AWSSSOInitiateRequest'
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AWSSSOInitiateResponse'
          description: OK
        '400':
          description: Failed to initiate AWS SSO flow
      summary: AWSSSOInitiate
      tags:
      - CloudSetup
  /api/esc/cloudsetup/{orgName}/aws/sso/setup:
    post:
      description: Sets up AWS infrastructure and ESC environments using AWS SSO
      operationId: AWSSSOSetup
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AWSSSOSetupRequest'
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudSetupResult'
          description: OK
        '400':
          description: Failed to setup infrastructure
        '404':
          description: Organization or Session not found
      summary: AWSSSOSetup
      tags:
      - CloudSetup
  /api/esc/cloudsetup/{orgName}/oauth/azure/accounts:
    get:
      description: Lists Azure subscriptions accessible with the provided ARM session
      operationId: AzureListAccounts
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      - description: The Azure ARM session identifier
        in: query
        name: armSessionId
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCloudAccountsResponse'
          description: OK
        '400':
          description: Failed to list azure subscriptions
        '404':
          description: Organization or Session not found
      summary: AzureListAccounts
      tags:
      - CloudSetup
  /api/esc/cloudsetup/{orgName}/oauth/azure/setup:
    post:
      description: Sets up Azure infrastructure and ESC environments using OAuth credentials
      operationId: AzureSetup
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureSetupRequest'
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudSetupResult'
          description: OK
        '400':
          description: Failed to setup infrastructure
        '404':
          description: Organization or Session not found
      summary: AzureSetup
      tags:
      - CloudSetup
  /api/esc/cloudsetup/{orgName}/oauth/complete:
    post:
      description: Completes OAuth flow by exchanging authorization code for access token
      operationId: CompleteOAuth
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompleteOAuthRequest'
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompleteOAuthResponse'
          description: OK
        '400':
          description: Failed to complete OAuth
      summary: CompleteOAuth
      tags:
      - CloudSetup
  /api/esc/cloudsetup/{orgName}/oauth/gcp/accounts:
    get:
      description: Lists GCP projects accessible with the provided oauth session
      operationId: GCPListAccounts
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      - description: The OAuth session identifier
        in: query
        name: oauthSessionId
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCloudAccountsResponse'
          description: OK
        '400':
          description: Failed to list gcp projects
        '404':
          description: Organization or Session not found
      summary: GCPListAccounts
      tags:
      - CloudSetup
  /api/esc/cloudsetup/{orgName}/oauth/gcp/setup:
    post:
      description: Sets up GCP infrastructure using OAuth credentials
      operationId: GCPSetup
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GCPSetupRequest'
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudSetupResult'
          description: OK
        '400':
          description: Failed to setup infrastructure
        '404':
          description: Organization or Session not found
      summary: GCPSetup
      tags:
      - CloudSetup
  /api/esc/cloudsetup/{orgName}/oauth/initiate:
    post:
      description: Initiates OAuth flow for a given cloud provider
      operationId: InitiateOAuth
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateOAuthRequest'
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiateOAuthResponse'
          description: OK
        '400':
          description: Failed to initiate oauth
      summary: InitiateOAuth
      tags:
      - CloudSetup
components:
  schemas:
    CompleteOAuthResponse:
      description: Response from OAuth completion
      type: object
    AWSSSOInitiateResponse:
      description: Response of the initialization of the AWS SSO flow
      properties:
        sessionId:
          description: The auth session id
          type: string
          x-order: 3
        url:
          description: The AWS SSO Verification URL
          type: string
          x-order: 1
        userCode:
          description: The AWS SSO User Code to verify
          type: string
          x-order: 2
      required:
      - sessionId
      - url
      - userCode
      type: object
    CloudSetupProvider:
      description: CloudSetupProvider configuration
      properties:
        azure:
          $ref: '#/components/schemas/AzureOptions'
          description: Azure-specific configuration options
          x-order: 2
        name:
          description: CloudSetupProvider name (e.g., 'azure', 'gcp')
          type: string
          x-order: 1
      required:
      - name
      type: object
    GCPSetupRequest:
      description: Request to setup GCP OIDC infrastructure
      properties:
        gcpEnvironmentInfo:
          $ref: '#/components/schemas/GCPEnvironmentInfo'
          description: GCP environment configuration to create
          x-order: 2
        oauthSessionId:
          description: GCP OAuth session ID
          type: string
          x-order: 1
      required:
      - gcpEnvironmentInfo
      - oauthSessionId
      type: object
    CloudAccount:
      description: Cloud account information
      properties:
        id:
          description: Account/subscription ID
          type: string
          x-order: 1
        name:
          description: Account/subscription name
          type: string
          x-order: 2
        number:
          description: Project number (for Azure)
          format: int64
          type: integer
          x-order: 4
        roles:
          description: Roles
          items:
            type: string
          type: array
          x-order: 3
      required:
      - id
      - name
      type: object
    AzureEnvironmentInfo:
      description: Azure environment configuration information
      properties:
        environmentName:
          description: ESC environment name
          type: string
          x-order: 4
        projectName:
          description: ESC project name
          type: string
          x-order: 3
        roleID:
          description: Azure role ID
          type: string
          x-order: 2
        subscriptionID:
          description: Azure subscription ID
          type: string
          x-order: 1
      required:
      - environmentName
      - projectName
      - roleID
      - subscriptionID
      type: object
    InitiateOAuthResponse:
      description: Response from OAuth initiation containing authorization URL and session details
      properties:
        sessionID:
          description: Session identifier for tracking the OAuth flow
          type: string
          x-order: 2
        url:
          description: Authorization URL to redirect user to
          type: string
          x-order: 1
      required:
      - sessionID
      - url
      type: object
    AWSSSOInitiateRequest:
      description: Request to initiate AWS SSO flow
      properties:
        region:
          description: The AWS SSO Region
          type: string
          x-order: 2
        startUrl:
          description: The AWS SSO Start URL
          type: string
          x-order: 1
      required:
      - region
      - startUrl
      type: object
    AzureSetupRequest:
      description: Request to setup Azure infrastructure and ESC environments
      properties:
        armSessionId:
          description: ARM (Azure Resource Manager) OAuth session ID
          type: string
          x-order: 1
        azureEnvironmentInfos:
          description: List of Azure environment configurations to create
          items:
            $ref: '#/components/schemas/AzureEnvironmentInfo'
          type: array
          x-order: 3
        graphSessionId:
          description: Microsoft Graph OAuth session ID
          type: string
          x-order: 2
      required:
      - armSessionId
      - azureEnvironmentInfos
      - graphSessionId
      type: object
    GCPEnvironmentInfo:
      description: GCP environment configuration information
      properties:
        environmentName:
          description: ESC environment name
          type: string
          x-order: 5
        gcpProjectID:
          description: GCP project ID
          type: string
          x-order: 1
        gcpRoleID:
          description: GCP role ID
          type: string
          x-order: 2
        gcpServiceAccountName:
          description: GCP service account name
          type: string
          x-order: 3
        projectName:
          description: ESC project name
          type: string
          x-order: 4
      required:
      - environmentName
      - gcpProjectID
      - gcpRoleID
      - gcpServiceAccountName
      - projectName
      type: object
    AWSSetupRequest:
      description: Request to setup AWS OIDC infrastructure using static credentials
      properties:
        accessKeyId:
          description: AWS Access Key ID
          type: string
          x-order: 1
        oidcRoleName:
          description: Name of IAM Role for OIDC
          type: string
          x-order: 5
        policyArn:
          description: ARN of the IAM policy to attach to the role
          type: string
          x-order: 4
        secretAccessKey:
          description: AWS Secret Access Key
          type: string
          x-order: 2
        sessionToken:
          description: AWS Session Token (for temporary credentials)
          type: string
          x-order: 3
      required:
      - accessKeyId
      - oidcRoleName
      - policyArn
      - secretAccessKey
      - sessionToken
      type: object
    AWSSSOSetupRequest:
      description: Request to setup AWS from AWS SSO
      properties:
        accountId:
          description: The AWS account id
          type: string
          x-order: 3
        accountRoleName:
          description: The AWS account role name
          type: string
          x-order: 4
        oidcRoleName:
          description: Name of IAM Role for OIDC
          type: string
          x-order: 6
        policyArn:
          description: ARN of the IAM policy to attach to the role
          type: string
          x-order: 5
        region:
          description: The AWS SSO Region
          type: string
          x-order: 2
        sessionId:
          description: The auth session id
          type: string
          x-order: 1
      required:
      - accountId
      - accountRoleName
      - oidcRoleName
      - policyArn
      - region
      - sessionId
      type: object
    AzureOptions:
      description: Azure provider options
      properties:
        apiName:
          description: Azure API name identifying which Azure service to target.
          enum:
          - ado
          - graph
          - arm
          type: string
          x-order: 2
          x-pulumi-model-property:
            enumTypeName: AzureApiName
            enumComments: Azure API name identifying which Azure service API to target.
            enumFieldComments:
            - Azure DevOps API
            - Microsoft Graph API
            - Azure Resource Manager API
        tenantId:
          description: Azure tenant ID
          type: string
          x-order: 1
      type: object
    CompleteOAuthRequest:
      description: Request to complete OAuth flow by exchanging authorization code for access token
      properties:
        code:
          description: Authorization code returned from OAuth provider
          type: string
          x-order: 3
        provider:
          $ref: '#/components/schemas/CloudSetupProvider'
          description: CloudSetupProvider configuration for OAuth authentication
          x-order: 1
        sessionID:
          description: Session identifier from OAuth initiation
          type: string
          x-order: 2
      required:
      - code
      - provider
      - sessionID
      type: object
    InitiateOAuthRequest:
      description: Request to initiate OAuth flow for cloud provider authentication
      properties:
        provider:
          $ref: '#/components/schemas/CloudSetupProvider'
          description: CloudSetupProvider configuration for OAuth authentication
          x-order: 1
      required:
      - provider
      type: object
    CloudSetupResource:
      description: A cloud resource that was created or managed during setup
      properties:
        error:
          description: Error message if the resource operation failed
          type: string
          x-order: 5
        id:
          description: Unique identifier of the resource
          type: string
          x-order: 2
        name:
          description: Name of the resource
          type: string
          x-order: 3
        properties:
          additionalProperties:
            type: string
          description: Additional properties of the resource
          type: object
          x-order: 6
        status:
          description: Status of the resource operation
          type: string
          x-order: 4
        type:
          description: Type of the resource
          type: string
          x-order: 1
      required:
      - id
      - name
      - status
      - type
      type: object
    ListCloudAccountsResponse:
      description: Response containing list of cloud accounts
      properties:
        accounts:
          description: List of cloud accounts/subscriptions
          items:
            $ref: '#/components/schemas/CloudAccount'
          type: array
          x-order: 1
      required:
      - accounts
      type: object
    CloudSetupResult:
      description: Result of a cloud setup operation
      properties:
        message:
          description: Optional message about the setup operation
          type: string
          x-order: 3
        resources:
          description: List of resources created or managed during setup
          items:
            $ref: '#/components/schemas/CloudSetupResource'
          type: array
          x-order: 2
        success:
          description: Whether the setup operation was successful
          type: boolean
          x-order: 1
      required:
      - resources
      - success
      type: object