## API Report File for "@aws-amplify/graphql-construct-alpha" > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts import { AppsyncFunctionProps } from 'aws-cdk-lib/aws-appsync'; import { CfnApiKey } from 'aws-cdk-lib/aws-appsync'; import { CfnDataSource } from 'aws-cdk-lib/aws-appsync'; import { CfnFunctionConfiguration } from 'aws-cdk-lib/aws-appsync'; import { CfnGraphQLApi } from 'aws-cdk-lib/aws-appsync'; import { CfnGraphQLSchema } from 'aws-cdk-lib/aws-appsync'; import { CfnPolicy } from 'aws-cdk-lib/aws-iam'; import { CfnResolver } from 'aws-cdk-lib/aws-appsync'; import { CfnResource } from 'aws-cdk-lib'; import { CfnRole } from 'aws-cdk-lib/aws-iam'; import { CfnTable } from 'aws-cdk-lib/aws-dynamodb'; import { Construct } from 'constructs'; import { Duration } from 'aws-cdk-lib'; import { IBucket } from 'aws-cdk-lib/aws-s3'; import { IFunction } from 'aws-cdk-lib/aws-lambda'; import { IRole } from 'aws-cdk-lib/aws-iam'; import { IUserPool } from 'aws-cdk-lib/aws-cognito'; import { SchemaFile } from 'aws-cdk-lib/aws-appsync'; import { TransformerPluginProvider } from '@aws-amplify/graphql-transformer-interfaces'; // @public export type AmplifyApiGraphqlSchema = SchemaFile | SchemaFile[] | string; // @public export type AmplifyApiSchemaPreprocessor<SchemaType> = (schema: SchemaType) => AmplifyApiSchemaPreprocessorOutput; // @public export type AmplifyApiSchemaPreprocessorOutput = { processedSchema: string; processedFunctionSlots?: FunctionSlot[]; }; // @public export class AmplifyGraphqlApi<SchemaType = AmplifyGraphqlApiResources> extends Construct { constructor(scope: Construct, id: string, props: AmplifyGraphqlApiProps<SchemaType>); getGeneratedFunctionSlots(): FunctionSlot[]; readonly resources: AmplifyGraphqlApiResources; } // @public export type AmplifyGraphqlApiProps<SchemaType = AmplifyApiGraphqlSchema> = { schema: SchemaType; schemaPreprocessor?: AmplifyApiSchemaPreprocessor<SchemaType>; apiName?: string; authorizationConfig: AuthorizationConfig; functionNameMap?: Record<string, IFunction>; conflictResolution?: ConflictResolution; stackMappings?: Record<string, string>; functionSlots?: FunctionSlot[]; transformers?: TransformerPluginProvider[]; predictionsBucket?: IBucket; schemaTranslationBehavior?: Partial<SchemaTranslationBehavior>; }; // @public export type AmplifyGraphqlApiResources = { cfnGraphqlApi: CfnGraphQLApi; cfnGraphqlSchema: CfnGraphQLSchema; cfnApiKey?: CfnApiKey; cfnResolvers: Record<string, CfnResolver>; cfnFunctionConfigurations: Record<string, CfnFunctionConfiguration>; cfnDataSources: Record<string, CfnDataSource>; cfnTables: Record<string, CfnTable>; cfnRoles: Record<string, CfnRole>; cfnPolicies: Record<string, CfnPolicy>; additionalCfnResources: Record<string, CfnResource>; }; // @public export type ApiKeyAuthorizationConfig = { description?: string; expires: Duration; }; // @public export type AuthorizationConfig = { defaultAuthMode?: 'AWS_IAM' | 'AMAZON_COGNITO_USER_POOLS' | 'OPENID_CONNECT' | 'API_KEY' | 'AWS_LAMBDA'; iamConfig?: IAMAuthorizationConfig; userPoolConfig?: UserPoolAuthorizationConfig; oidcConfig?: OIDCAuthorizationConfig; apiKeyConfig?: ApiKeyAuthorizationConfig; lambdaConfig?: LambdaAuthorizationConfig; }; // @public export type AutomergeConflictResolutionStrategy = ConflictResolutionStrategyBase & { handlerType: 'AUTOMERGE'; }; // @public export type ConflictDetectionType = 'VERSION' | 'NONE'; // @public export type ConflictHandlerType = 'OPTIMISTIC_CONCURRENCY' | 'AUTOMERGE' | 'LAMBDA'; // @public export type ConflictResolution = { project?: ConflictResolutionStrategy; models?: Record<string, ConflictResolutionStrategy>; }; // @public export type ConflictResolutionStrategy = AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy; // @public export type ConflictResolutionStrategyBase = { detectionType: ConflictDetectionType; handlerType: ConflictHandlerType; }; // @public export type CustomConflictResolutionStrategy = ConflictResolutionStrategyBase & { handlerType: 'LAMBDA'; conflictHandler: IFunction; }; // @public export type FunctionSlot = MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot; // @public export type FunctionSlotBase = { fieldName: string; slotIndex: number; function: FunctionSlotOverride; }; // @public export type FunctionSlotOverride = Partial<Pick<AppsyncFunctionProps, 'name' | 'description' | 'dataSource' | 'requestMappingTemplate' | 'responseMappingTemplate' | 'code' | 'runtime'>>; // @public export type IAMAuthorizationConfig = { identityPoolId?: string; authenticatedUserRole?: IRole; unauthenticatedUserRole?: IRole; adminRoles?: IRole[]; }; // @public export type LambdaAuthorizationConfig = { function: IFunction; ttl: Duration; }; // @public export type MutationFunctionSlot = FunctionSlotBase & { typeName: 'Mutation'; slotName: 'init' | 'preAuth' | 'auth' | 'postAuth' | 'preUpdate' | 'postUpdate' | 'finish'; }; // @public export type OIDCAuthorizationConfig = { oidcProviderName: string; oidcIssuerUrl: string; clientId?: string; tokenExpiryFromAuth: Duration; tokenExpiryFromIssue: Duration; }; // @public export type OptimisticConflictResolutionStrategy = ConflictResolutionStrategyBase & { handlerType: 'OPTIMISTIC_CONCURRENCY'; }; // @public export type QueryFunctionSlot = FunctionSlotBase & { typeName: 'Query'; slotName: 'init' | 'preAuth' | 'auth' | 'postAuth' | 'preDataLoad' | 'postDataLoad' | 'finish'; }; // @public export type SchemaTranslationBehavior = { shouldDeepMergeDirectiveConfigDefaults: boolean; disableResolverDeduping: boolean; sandboxModeEnabled: boolean; useSubUsernameForDefaultIdentityClaim: boolean; populateOwnerFieldForStaticGroupAuth: boolean; suppressApiKeyGeneration: boolean; secondaryKeyAsGSI: boolean; enableAutoIndexQueryNames: boolean; respectPrimaryKeyAttributesOnConnectionField: boolean; enableSearchNodeToNodeEncryption: boolean; }; // @public export type SubscriptionFunctionSlot = FunctionSlotBase & { typeName: 'Subscription'; slotName: 'init' | 'preAuth' | 'auth' | 'postAuth' | 'preSubscribe'; }; // @public export type UserPoolAuthorizationConfig = { userPool: IUserPool; }; // (No @packageDocumentation comment for this package) ```