import { OpenIdConnectProvider, type OpenIdConnectProviderProps } from "aws-cdk-lib/aws-iam"; import type { IConstruct } from "constructs"; import { type IBuilder, type Lifecycle } from "@composurecdk/core"; /** * Configuration properties for the {@link createOpenIdConnectProviderBuilder | OIDC provider builder}. * * Aliases the CDK {@link OpenIdConnectProviderProps} unchanged — the builder * adds no properties of its own, only the fluent surface and a validated * {@link IOpenIdConnectProviderBuilder.build | build}. */ export type OpenIdConnectProviderBuilderProps = OpenIdConnectProviderProps; /** * The build output of an {@link IOpenIdConnectProviderBuilder}. */ export interface OpenIdConnectProviderBuilderResult { /** The OIDC identity provider construct created by the builder. */ provider: OpenIdConnectProvider; } /** * A fluent builder for configuring and creating an IAM OIDC identity provider. * * Establishes trust between the account and an external OpenID Connect * identity provider (GitHub Actions, GitLab, Terraform Cloud, an EKS cluster, * any OIDC-compatible IdP), so roles can be assumed via * `sts:AssumeRoleWithWebIdentity` without long-lived credentials. Pair the * built provider with {@link openIdConnectPrincipal} (or the * {@link githubActions} helpers) to scope the trust policy. * * Wraps the L2 {@link OpenIdConnectProvider}, which auto-fetches the provider's * root-CA thumbprint when none is supplied — so the common case requires only * a URL and audience. * * @see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html * * @example * ```ts * const { provider } = createOpenIdConnectProviderBuilder() * .url("https://token.actions.githubusercontent.com") * .clientIds(["sts.amazonaws.com"]) * .build(stack, "GithubOidcProvider"); * ``` */ export type IOpenIdConnectProviderBuilder = IBuilder; declare class OpenIdConnectProviderBuilder implements Lifecycle { props: Partial; build(scope: IConstruct, id: string): OpenIdConnectProviderBuilderResult; } /** * Creates a new {@link IOpenIdConnectProviderBuilder} for configuring an IAM * OIDC identity provider. * * @returns A fluent builder for an OIDC identity provider. */ export declare function createOpenIdConnectProviderBuilder(): IOpenIdConnectProviderBuilder; export {}; //# sourceMappingURL=open-id-connect-provider-builder.d.ts.map