1import type * as serverless from "@distilled.cloud/aws/redshift-serverless";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `GetIdentityCenterAuthToken` operation (IAM actions
7 * `redshift-serverless:GetIdentityCenterAuthToken`).
8 *
9 * Mints an IAM Identity Center authentication token for up to 20
10 * workgroups — the trusted-identity-propagation alternative to
11 * {@link Connect}'s `GetCredentials` flow. The response `token` decodes to
12 * `Redacted<string>`. Provide the implementation with
13 * `Effect.provide(AWS.RedshiftServerless.GetIdentityCenterAuthTokenHttp)`.
14 * ### Connecting to a Workgroup
15 * **Example:** Mint an Identity Center Token
16 * ```typescript
17 * // init — resolve the runtime client
18 * const getToken = yield* AWS.RedshiftServerless.GetIdentityCenterAuthToken();
19 *
20 * const { token, expirationTime } = yield* getToken({
21 * workgroupNames: [workgroupName],
22 * });
23 * ```
24 *
25 * @binding
26 */
27export interface GetIdentityCenterAuthToken extends Binding.Service<
28 GetIdentityCenterAuthToken,
29 "AWS.RedshiftServerless.GetIdentityCenterAuthToken",
30 () => Effect.Effect<
31 (
32 request: serverless.GetIdentityCenterAuthTokenRequest,
33 ) => Effect.Effect<
34 serverless.GetIdentityCenterAuthTokenResponse,
35 serverless.GetIdentityCenterAuthTokenError
36 >
37 >
38> {}
39export const GetIdentityCenterAuthToken =
40 Binding.Service<GetIdentityCenterAuthToken>(
41 "AWS.RedshiftServerless.GetIdentityCenterAuthToken",
42 );