import * as cdk from "@aws-cdk/core"; import * as iam from "@aws-cdk/aws-iam"; import * as cognito from "@aws-cdk/aws-cognito"; import { Function as Fn, FunctionProps, FunctionDefinition } from "./Function"; import { Permissions } from "./util/permission"; export interface AuthProps { readonly cognito?: boolean | AuthCognitoProps; readonly auth0?: AuthAuth0Props; readonly amazon?: AuthAmazonProps; readonly apple?: AuthAppleProps; readonly facebook?: AuthFacebookProps; readonly google?: AuthGoogleProps; readonly twitter?: AuthTwitterProps; readonly identityPool?: AuthCdkCfnIdentityPoolProps; readonly cognitoUserPool?: cognito.IUserPool; readonly cognitoUserPoolClient?: cognito.IUserPoolClient; } export interface AuthCognitoProps { readonly userPool?: cognito.UserPoolProps | cognito.UserPool; readonly userPoolClient?: cognito.UserPoolClientOptions | cognito.UserPoolClient; readonly defaultFunctionProps?: FunctionProps; readonly triggers?: AuthUserPoolTriggers; readonly signInAliases?: cognito.SignInAliases; } export interface AuthUserPoolTriggers { readonly createAuthChallenge?: FunctionDefinition; readonly customMessage?: FunctionDefinition; readonly defineAuthChallenge?: FunctionDefinition; readonly postAuthentication?: FunctionDefinition; readonly postConfirmation?: FunctionDefinition; readonly preAuthentication?: FunctionDefinition; readonly preSignUp?: FunctionDefinition; readonly preTokenGeneration?: FunctionDefinition; readonly userMigration?: FunctionDefinition; readonly verifyAuthChallengeResponse?: FunctionDefinition; } export interface AuthAuth0Props { readonly domain: string; readonly clientId: string; } export interface AuthAmazonProps { readonly appId: string; } export interface AuthAppleProps { readonly servicesId: string; } export interface AuthFacebookProps { readonly appId: string; } export interface AuthGoogleProps { readonly clientId: string; } export interface AuthTwitterProps { readonly consumerKey: string; readonly consumerSecret: string; } export interface AuthCdkCfnIdentityPoolProps extends Omit { readonly allowUnauthenticatedIdentities?: boolean; } export declare class Auth extends cdk.Construct { readonly cognitoUserPool?: cognito.UserPool; readonly cognitoUserPoolClient?: cognito.UserPoolClient; readonly cognitoCfnIdentityPool: cognito.CfnIdentityPool; readonly iamAuthRole: iam.Role; readonly iamUnauthRole: iam.Role; private readonly functions; private readonly defaultFunctionProps?; private readonly permissionsAttachedForAllTriggers; constructor(scope: cdk.Construct, id: string, props: AuthProps); attachPermissionsForAuthUsers(permissions: Permissions): void; attachPermissionsForUnauthUsers(permissions: Permissions): void; attachPermissionsForTriggers(permissions: Permissions): void; attachPermissionsForTrigger(triggerKey: keyof AuthUserPoolTriggers, permissions: Permissions): void; getFunction(triggerKey: keyof AuthUserPoolTriggers): Fn | undefined; private checkDeprecatedProps; private addTrigger; private createAuthRole; private createUnauthRole; }