Issue SSH OTP
const url = 'https://example.com/vault/v1/workspaces/example/engines/qibdo/ssh/example/otp';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"workspace":"example","source_role":"example","username":"example","ip_address":"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/ssh/example/otp \ --header 'Content-Type: application/json' \ --data '{ "workspace": "example", "source_role": "example", "username": "example", "ip_address": "example" }'Issues a one-time SSH password for a username + target IP pair. Requires the
target host to run the the vault backend SSH OTP helper. Bound to a QibdoLease.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The workspace to issue the OTP under.
The pre-configured OTP role.
Request Body required
Section titled “Request Body required ”Request payload for Issue Ssh Qibdo Otp
Carries the input fields required to issue ssh qibdo otp.
object
The workspace to issue the OTP under.
The pre-configured OTP role.
The username that will use the OTP on the target host.
The target host IP address.
Example generated
{ "workspace": "example", "source_role": "example", "username": "example", "ip_address": "example"}Responses
Section titled “ Responses ”OK
Response payload from Issue Ssh Qibdo Otp
Carries the output produced by issue ssh qibdo otp.
object
The freshly issued one-time password bundled with its lease handle. The credential’s username/password fields carry the SSH username + OTP.
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.
Example
{ "credential": { "lease": { "status": "LEASE_STATUS_UNSPECIFIED", "source_type": "LEASE_SOURCE_TYPE_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" } ]}