Cloud Setup
The Cloud Setup API helps you configure cloud provider credentials and integrations for use with Pulumi. Endpoints cover initial provider setup workflows for AWS, Azure, and GCP.
AWS Setup
POST
/api/esc/cloudsetup/{orgName}/aws/setupSets up AWS infrastructure using provided static credentials
Request Parameters
orgNamestring path requiredThe organization name
Request Body
Schema: AWSSetupRequest
accessKeyIdstring requiredAWS Access Key IDsecretAccessKeystring requiredAWS Secret Access KeysessionTokenstring requiredAWS Session Token (for temporary credentials)policyArnstring requiredARN of the IAM policy to attach to the roleoidcRoleNamestring requiredName of IAM Role for OIDC
Responses
200
OK
Schema: CloudSetupResult
successboolean requiredWhether the setup operation was successful- List of resources created or managed during setup
- ↳
typestring requiredType of the resource - ↳
idstring requiredUnique identifier of the resource - ↳
namestring requiredName of the resource - ↳
statusstring requiredStatus of the resource operation - ↳
errorstring optionalError message if the resource operation failed - ↳
propertiesmap[string]string optionalAdditional properties of the resource messagestring optionalOptional message about the setup operation
Errors:
400 Failed to setup infrastructure
AWSSSO List Accounts
GET
/api/esc/cloudsetup/{orgName}/aws/sso/accountsLists AWS accounts accessible with the provided session
Request Parameters
orgNamestring path requiredThe organization nameregionstring query optionalThe AWS regionsessionIdstring query optionalThe SSO session identifier
Responses
200
OK
Schema: ListCloudAccountsResponse
- List of cloud accounts/subscriptions
- ↳
idstring requiredAccount/subscription ID - ↳
namestring requiredAccount/subscription name - ↳
rolesarray[string] optionalRoles - ↳
numberinteger optionalProject number (for Azure)
Errors:
400 Failed to list accounts
404 Organization or Session not found
412 Session not yet authorized
AWSSSO Initiate
POST
/api/esc/cloudsetup/{orgName}/aws/sso/initiateInitiates the AWS SSO flow
Request Parameters
orgNamestring path requiredThe organization name
Request Body
Schema: AWSSSOInitiateRequest
startUrlstring requiredThe AWS SSO Start URLregionstring requiredThe AWS SSO Region
Responses
200
OK
Schema: AWSSSOInitiateResponse
urlstring requiredThe AWS SSO Verification URLuserCodestring requiredThe AWS SSO User Code to verifysessionIdstring requiredThe auth session id
Errors:
400 Failed to initiate AWS SSO flow
AWSSSO Setup
POST
/api/esc/cloudsetup/{orgName}/aws/sso/setupSets up AWS infrastructure and ESC environments using AWS SSO
Request Parameters
orgNamestring path requiredThe organization name
Request Body
Schema: AWSSSOSetupRequest
sessionIdstring requiredThe auth session idregionstring requiredThe AWS SSO RegionaccountIdstring requiredThe AWS account idaccountRoleNamestring requiredThe AWS account role namepolicyArnstring requiredARN of the IAM policy to attach to the roleoidcRoleNamestring requiredName of IAM Role for OIDC
Responses
200
OK
Schema: CloudSetupResult
successboolean requiredWhether the setup operation was successful- List of resources created or managed during setup
- ↳
typestring requiredType of the resource - ↳
idstring requiredUnique identifier of the resource - ↳
namestring requiredName of the resource - ↳
statusstring requiredStatus of the resource operation - ↳
errorstring optionalError message if the resource operation failed - ↳
propertiesmap[string]string optionalAdditional properties of the resource messagestring optionalOptional message about the setup operation
Errors:
400 Failed to setup infrastructure
404 Organization or Session not found
Azure List Accounts
GET
/api/esc/cloudsetup/{orgName}/oauth/azure/accountsLists Azure subscriptions accessible with the provided ARM session
Request Parameters
orgNamestring path requiredThe organization namearmSessionIdstring query optionalThe Azure ARM session identifier
Responses
200
OK
Schema: ListCloudAccountsResponse
- List of cloud accounts/subscriptions
- ↳
idstring requiredAccount/subscription ID - ↳
namestring requiredAccount/subscription name - ↳
rolesarray[string] optionalRoles - ↳
numberinteger optionalProject number (for Azure)
Errors:
400 Failed to list azure subscriptions
404 Organization or Session not found
Azure Setup
POST
/api/esc/cloudsetup/{orgName}/oauth/azure/setupSets up Azure infrastructure and ESC environments using OAuth credentials
Request Parameters
orgNamestring path requiredThe organization name
Request Body
Schema: AzureSetupRequest
armSessionIdstring requiredARM (Azure Resource Manager) OAuth session IDgraphSessionIdstring requiredMicrosoft Graph OAuth session ID- List of Azure environment configurations to create
- ↳
subscriptionIDstring requiredAzure subscription ID - ↳
roleIDstring requiredAzure role ID - ↳
projectNamestring requiredESC project name - ↳
environmentNamestring requiredESC environment name
Responses
200
OK
Schema: CloudSetupResult
successboolean requiredWhether the setup operation was successful- List of resources created or managed during setup
- ↳
typestring requiredType of the resource - ↳
idstring requiredUnique identifier of the resource - ↳
namestring requiredName of the resource - ↳
statusstring requiredStatus of the resource operation - ↳
errorstring optionalError message if the resource operation failed - ↳
propertiesmap[string]string optionalAdditional properties of the resource messagestring optionalOptional message about the setup operation
Errors:
400 Failed to setup infrastructure
404 Organization or Session not found
Complete O Auth
POST
/api/esc/cloudsetup/{orgName}/oauth/completeCompletes OAuth flow by exchanging authorization code for access token
Request Parameters
orgNamestring path requiredThe organization name
Request Body
Schema: CompleteOAuthRequest
- CloudSetupProvider configuration for OAuth authentication
- ↳
namestring requiredCloudSetupProvider name (e.g., ‘azure’, ‘gcp’) - Azure-specific configuration options
sessionIDstring requiredSession identifier from OAuth initiationcodestring requiredAuthorization code returned from OAuth provider
Responses
200
OK
Schema: CompleteOAuthResponse
Errors:
400 Failed to complete OAuth
GCP List Accounts
GET
/api/esc/cloudsetup/{orgName}/oauth/gcp/accountsLists GCP projects accessible with the provided oauth session
Request Parameters
orgNamestring path requiredThe organization nameoauthSessionIdstring query optionalThe OAuth session identifier
Responses
200
OK
Schema: ListCloudAccountsResponse
- List of cloud accounts/subscriptions
- ↳
idstring requiredAccount/subscription ID - ↳
namestring requiredAccount/subscription name - ↳
rolesarray[string] optionalRoles - ↳
numberinteger optionalProject number (for Azure)
Errors:
400 Failed to list gcp projects
404 Organization or Session not found
GCP Setup
POST
/api/esc/cloudsetup/{orgName}/oauth/gcp/setupSets up GCP infrastructure using OAuth credentials
Request Parameters
orgNamestring path requiredThe organization name
Request Body
Schema: GCPSetupRequest
oauthSessionIdstring requiredGCP OAuth session ID- GCP environment configuration to create
- ↳
gcpProjectIDstring requiredGCP project ID - ↳
gcpRoleIDstring requiredGCP role ID - ↳
gcpServiceAccountNamestring requiredGCP service account name - ↳
projectNamestring requiredESC project name - ↳
environmentNamestring requiredESC environment name
Responses
200
OK
Schema: CloudSetupResult
successboolean requiredWhether the setup operation was successful- List of resources created or managed during setup
- ↳
typestring requiredType of the resource - ↳
idstring requiredUnique identifier of the resource - ↳
namestring requiredName of the resource - ↳
statusstring requiredStatus of the resource operation - ↳
errorstring optionalError message if the resource operation failed - ↳
propertiesmap[string]string optionalAdditional properties of the resource messagestring optionalOptional message about the setup operation
Errors:
400 Failed to setup infrastructure
404 Organization or Session not found
Initiate O Auth
POST
/api/esc/cloudsetup/{orgName}/oauth/initiateInitiates OAuth flow for a given cloud provider
Request Parameters
orgNamestring path requiredThe organization name
Request Body
Schema: InitiateOAuthRequest
- CloudSetupProvider configuration for OAuth authentication
- ↳
namestring requiredCloudSetupProvider name (e.g., ‘azure’, ‘gcp’) - Azure-specific configuration options
Responses
200
OK
Schema: InitiateOAuthResponse
urlstring requiredAuthorization URL to redirect user tosessionIDstring requiredSession identifier for tracking the OAuth flow
Errors:
400 Failed to initiate oauth
Thank you for your feedback!
If you have a question about how to use Pulumi, reach out in Community Slack.
Open an issue on GitHub to report a problem or suggest an improvement.