Generate Cloud Credential
const url = 'https://example.com/vault/v1/workspaces/example/engines/qibdo/clouds/CLOUD_PROVIDER_UNSPECIFIED/example/credentials';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"workspace":"example","cloud_provider":"CLOUD_PROVIDER_UNSPECIFIED","source_role":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/vault/v1/workspaces/example/engines/qibdo/clouds/CLOUD_PROVIDER_UNSPECIFIED/example/credentials \ --header 'Content-Type: application/json' \ --data '{ "workspace": "example", "cloud_provider": "CLOUD_PROVIDER_UNSPECIFIED", "source_role": "example" }'Generates a new ephemeral cloud-IAM credential against AWS, GCP, or Azure for the given pre-configured role. The response embeds both the credential payload (returned exactly once) and the persistent lease handle. The credential’s username/password fields carry provider-specific material:
- AWS: access_key / secret_key (STS preferred, falls back to static IAM)
- GCP: “oauth2-access-token” / OAuth2 access token
- Azure: client_id / client_secret
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The workspace to issue the credential under.
The cloud provider whose IAM credentials are requested.
The pre-configured role to draw the credential from. Names map to:
- AWS: STS role (preferred) or static IAM role
- GCP: roleset
- Azure: role
Request Body required
Section titled “Request Body required ”Request payload for Generate Cloud Qibdo Credential
Carries the input fields required to generate cloud qibdo credential.
object
The workspace to issue the credential under.
The cloud provider whose IAM credentials are requested.
The pre-configured role to draw the credential from. Names map to:
- AWS: STS role (preferred) or static IAM role
- GCP: roleset
- Azure: role
Responses
Section titled “ Responses ”OK
Response payload from Generate Cloud Qibdo Credential
Carries the output produced by generate cloud qibdo credential.
object
The freshly issued ephemeral credential bundled with its lease handle.
object
The lease metadata for this credential — the persistent server-side handle used to renew or revoke the credential.
object
The unique identifier of the lease (UUID).
The workspace this lease belongs to (UUID, weak reference to taxonomy).
The principal (IAM user / service account) the lease was issued to.
Initial time-to-live for the lease.
Maximum total lifetime including renewals — capped by the engine.
Whether the lease can be renewed.
Whether the lease can be revoked early.
Timestamp when the lease was issued.
Timestamp when the lease expires (may be extended by RenewQibdoLease).
Current lifecycle status of the lease.
The engine that produced this lease (database / cloud_aws / cloud_gcp / cloud_azure / ssh / kubernetes).
Engine-specific role identifier the lease was issued against (e.g., the vault
database role name for database leases).
The engine-side lease identifier (e.g., vault lease ID). Used as the prefix key for bulk-revoke operations.
Timestamp when the lease metadata row was created (server-managed).
Timestamp when the lease metadata was last modified (server-managed).
Weak reference to a topology Location — where this resource resides. Defaults to the global location when omitted at creation and is immutable thereafter. Only the global location is available in this release.
The username portion of the credential (e.g., a transient database role).
The password portion of the credential. Returned exactly once — clients MUST store it before the lease expires.
The cloud provider that issued the credential — echoed for convenience.
Example
{ "credential": { "lease": { "status": "LEASE_STATUS_UNSPECIFIED", "source_type": "LEASE_SOURCE_TYPE_UNSPECIFIED" } }, "cloud_provider": "CLOUD_PROVIDER_UNSPECIFIED"}default
Section titled “default ”Default error response
The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.
object
The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
A list of messages that carry the error details. There is a common set of message types for APIs to use.
Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
object
The type of the serialized message.
Example generated
{ "code": 1, "message": "example", "details": [ { "@type": "example" } ]}