Skip to content

Developer portal

POST /tenant/integrations/cloud/{provider}

Create or update cloud integration credentials and connection settings.

PilotPOST /tenant/integrations/cloud/{provider}Auth: operator | admin

Summary

Create or update cloud integration credentials and connection settings.

Example

curl

curl -X POST "https://sparkling-vibrancy-production-1a7a.up.railway.app/tenant/integrations/cloud/{provider}" \
  -H "Authorization: Bearer 811f31d4-5b8e-4ed0-a7a2-8176e05eba63" \
  -H "Content-Type: application/json" \
  -d '{
  "region": "us-east-1",
  "roleArn": "arn:aws:iam::123456789012:role/QtanglReadOnly"
}'

Request body

FieldTypeRequiredDescription
regionstringNo

Cloud region.

vaultNamestringNo

Azure Key Vault name.

roleArnstringNo

AWS IAM role ARN.

externalIdstringNo

Optional external id for role assumption.

projectIdstringNo

GCP project id.

credentialsJsonstringNo

GCP credentials JSON string.

kubeconfigJsonstringNo

Kubernetes kubeconfig content.

namespacestringNo

Kubernetes namespace filter.

contextstringNo

Kubernetes context.

tenantIdstringNo

Azure tenant id.

clientIdstringNo

Azure client id.

clientSecretstringNo

Azure client secret.

Response

FieldTypeRequiredDescription
integrationobjectYes

Saved cloud integration row.

Errors

CodeMeaningTypical causeSuggested fix
401UnauthorizedMissing or invalid API key in Authorization, x-api-key, or query param.Send Bearer <key> or x-api-key with a valid tenant token.
403ForbiddenValid key but insufficient role (viewer attempting write) or wrong admin key.Use operator or admin role key; check RBAC matrix.
404Not foundScan, schedule, share link, or resource id does not exist or expired.Verify id and tenant scope; share links expire per expiresHours.
422Unprocessable entityInvalid payload shape, unsupported scenario, or infeasible constraints.Fix field errors in response detail; relax constraints and retry.
429Too many requestsPer-key rate limit exceeded (default 300 requests per minute) or public endpoint limit.Backoff with jitter; cache results; request higher limit for production.
500Internal server errorUnexpected backend failure; includes requestId in response.Retry with exponential backoff; contact support with requestId if persistent.
503Service unavailablePersistence disabled, auth DB unreachable, or admin API not configured.Retry shortly; schedules require Postgres persistence enabled.

See the full errors reference.