import * as pulumi from "@pulumi/pulumi"; /** * This data source provides a [self-signed JWT](https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-jwt). Tokens issued from this data source are typically used to call external services that accept JWTs for authentication. * * ## Example Usage * * Note: in order to use the following, the caller must have _at least_ `roles/iam.serviceAccountTokenCreator` on the `targetServiceAccount`. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const foo = gcp.serviceaccount.getAccountJwt({ * targetServiceAccount: "impersonated-account@project.iam.gserviceaccount.com", * payload: JSON.stringify({ * foo: "bar", * sub: "subject", * }), * expiresIn: 60, * }); * export const jwt = foo.then(foo => foo.jwt); * ``` */ export declare function getAccountJwt(args: GetAccountJwtArgs, opts?: pulumi.InvokeOptions): Promise; /** * A collection of arguments for invoking getAccountJwt. */ export interface GetAccountJwtArgs { /** * Delegate chain of approvals needed to perform full impersonation. Specify the fully qualified service account name. */ delegates?: string[]; /** * Number of seconds until the JWT expires. If set and non-zero an `exp` claim will be added to the payload derived from the current timestamp plus expiresIn seconds. */ expiresIn?: number; /** * The JSON-encoded JWT claims set to include in the self-signed JWT. */ payload: string; /** * The email of the service account that will sign the JWT. */ targetServiceAccount: string; } /** * A collection of values returned by getAccountJwt. */ export interface GetAccountJwtResult { readonly delegates?: string[]; readonly expiresIn?: number; /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; /** * The signed JWT containing the JWT Claims Set from the `payload`. */ readonly jwt: string; readonly payload: string; readonly targetServiceAccount: string; } /** * This data source provides a [self-signed JWT](https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-jwt). Tokens issued from this data source are typically used to call external services that accept JWTs for authentication. * * ## Example Usage * * Note: in order to use the following, the caller must have _at least_ `roles/iam.serviceAccountTokenCreator` on the `targetServiceAccount`. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const foo = gcp.serviceaccount.getAccountJwt({ * targetServiceAccount: "impersonated-account@project.iam.gserviceaccount.com", * payload: JSON.stringify({ * foo: "bar", * sub: "subject", * }), * expiresIn: 60, * }); * export const jwt = foo.then(foo => foo.jwt); * ``` */ export declare function getAccountJwtOutput(args: GetAccountJwtOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; /** * A collection of arguments for invoking getAccountJwt. */ export interface GetAccountJwtOutputArgs { /** * Delegate chain of approvals needed to perform full impersonation. Specify the fully qualified service account name. */ delegates?: pulumi.Input[]>; /** * Number of seconds until the JWT expires. If set and non-zero an `exp` claim will be added to the payload derived from the current timestamp plus expiresIn seconds. */ expiresIn?: pulumi.Input; /** * The JSON-encoded JWT claims set to include in the self-signed JWT. */ payload: pulumi.Input; /** * The email of the service account that will sign the JWT. */ targetServiceAccount: pulumi.Input; }