UNPKG

@aws-amplify/graphql-api-construct

Version:

AppSync GraphQL Api Construct using Amplify GraphQL Transformer.

510 lines (443 loc) 18.5 kB
## API Report File for "@aws-amplify/graphql-api-construct" > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts import { AppsyncFunction } from 'aws-cdk-lib/aws-appsync'; import { BaseDataSource } from 'aws-cdk-lib/aws-appsync'; import { BillingMode } from 'aws-cdk-lib/aws-dynamodb'; import { CfnApiKey } from 'aws-cdk-lib/aws-appsync'; import { CfnDataSource } from 'aws-cdk-lib/aws-appsync'; import { CfnFunction } from 'aws-cdk-lib/aws-lambda'; 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 { 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 { Code } from 'aws-cdk-lib/aws-appsync'; import { Construct } from 'constructs'; import { DataSourceOptions } from 'aws-cdk-lib/aws-appsync'; import { Duration } from 'aws-cdk-lib'; import { DynamoDbDataSource } from 'aws-cdk-lib/aws-appsync'; import { ElasticsearchDataSource } from 'aws-cdk-lib/aws-appsync'; import { EventBridgeDataSource } from 'aws-cdk-lib/aws-appsync'; import { ExtendedResolverProps } from 'aws-cdk-lib/aws-appsync'; import { FieldLogLevel } from 'aws-cdk-lib/aws-appsync'; import { FunctionRuntime } from 'aws-cdk-lib/aws-appsync'; import { HttpDataSource } from 'aws-cdk-lib/aws-appsync'; import { HttpDataSourceOptions } from 'aws-cdk-lib/aws-appsync'; import { IBucket } from 'aws-cdk-lib/aws-s3'; import { IDomain } from 'aws-cdk-lib/aws-elasticsearch'; import { IDomain as IDomain_2 } from 'aws-cdk-lib/aws-opensearchservice'; import { IEventBus } from 'aws-cdk-lib/aws-events'; import { IFunction } from 'aws-cdk-lib/aws-lambda'; import { IGraphqlApi } from 'aws-cdk-lib/aws-appsync'; import { IRole } from 'aws-cdk-lib/aws-iam'; import { ISecret } from 'aws-cdk-lib/aws-secretsmanager'; import { IServerlessCluster } from 'aws-cdk-lib/aws-rds'; import { ITable } from 'aws-cdk-lib/aws-dynamodb'; import { IUserPool } from 'aws-cdk-lib/aws-cognito'; import { LambdaDataSource } from 'aws-cdk-lib/aws-appsync'; import { MappingTemplate } from 'aws-cdk-lib/aws-appsync'; import { NestedStack } from 'aws-cdk-lib'; import { NoneDataSource } from 'aws-cdk-lib/aws-appsync'; import { OpenSearchDataSource } from 'aws-cdk-lib/aws-appsync'; import { RdsDataSource } from 'aws-cdk-lib/aws-appsync'; import { RemovalPolicy } from 'aws-cdk-lib'; import { Resolver } from 'aws-cdk-lib/aws-appsync'; import { RetentionDays } from 'aws-cdk-lib/aws-logs'; import { Stack } from 'aws-cdk-lib'; import { StreamViewType } from 'aws-cdk-lib/aws-dynamodb'; // @public export interface AddFunctionProps { readonly code?: Code; readonly dataSource: BaseDataSource; readonly description?: string; readonly name: string; readonly requestMappingTemplate?: MappingTemplate; readonly responseMappingTemplate?: MappingTemplate; readonly runtime?: FunctionRuntime; } // @public export interface AmplifyDynamoDbModelDataSourceStrategy { // (undocumented) readonly dbType: 'DYNAMODB'; // (undocumented) readonly provisionStrategy: 'AMPLIFY_TABLE'; } // @public export class AmplifyDynamoDbTableWrapper { constructor(resource: CfnResource); applyRemovalPolicy(policy: RemovalPolicy): void; set billingMode(billingMode: BillingMode); set deletionProtectionEnabled(deletionProtectionEnabled: boolean); static isAmplifyDynamoDbTableResource(x: any): x is CfnResource; set pointInTimeRecoveryEnabled(pointInTimeRecoveryEnabled: boolean); set pointInTimeRecoverySpecification(pointInTimeRecoverySpecification: PointInTimeRecoverySpecification); set provisionedThroughput(provisionedThroughput: ProvisionedThroughput); setGlobalSecondaryIndexProvisionedThroughput(indexName: string, provisionedThroughput: ProvisionedThroughput): void; set sseSpecification(sseSpecification: SSESpecification); set streamSpecification(streamSpecification: StreamSpecification); set timeToLiveAttribute(timeToLiveSpecification: TimeToLiveSpecification); } // @public export class AmplifyGraphqlApi extends Construct { constructor(scope: Construct, id: string, props: AmplifyGraphqlApiProps); addDynamoDbDataSource(id: string, table: ITable, options?: DataSourceOptions): DynamoDbDataSource; // @deprecated addElasticsearchDataSource(id: string, domain: IDomain, options?: DataSourceOptions): ElasticsearchDataSource; addEventBridgeDataSource(id: string, eventBus: IEventBus, options?: DataSourceOptions): EventBridgeDataSource; addFunction(id: string, props: AddFunctionProps): AppsyncFunction; addHttpDataSource(id: string, endpoint: string, options?: HttpDataSourceOptions): HttpDataSource; addLambdaDataSource(id: string, lambdaFunction: IFunction, options?: DataSourceOptions): LambdaDataSource; addNoneDataSource(id: string, options?: DataSourceOptions): NoneDataSource; addOpenSearchDataSource(id: string, domain: IDomain_2, options?: DataSourceOptions): OpenSearchDataSource; addRdsDataSource(id: string, serverlessCluster: IServerlessCluster, secretStore: ISecret, databaseName?: string, options?: DataSourceOptions): RdsDataSource; addResolver(id: string, props: ExtendedResolverProps): Resolver; readonly apiId: string; readonly apiKey: string | undefined; readonly generatedFunctionSlots: FunctionSlot[]; readonly graphqlUrl: string; readonly realtimeUrl: string; readonly resources: AmplifyGraphqlApiResources; readonly stack: Stack; } // @public export interface AmplifyGraphqlApiCfnResources { readonly additionalCfnResources: Record<string, CfnResource>; readonly amplifyDynamoDbTables: Record<string, AmplifyDynamoDbTableWrapper>; readonly cfnApiKey?: CfnApiKey; readonly cfnDataSources: Record<string, CfnDataSource>; readonly cfnFunctionConfigurations: Record<string, CfnFunctionConfiguration>; readonly cfnFunctions: Record<string, CfnFunction>; readonly cfnGraphqlApi: CfnGraphQLApi; readonly cfnGraphqlSchema: CfnGraphQLSchema; readonly cfnResolvers: Record<string, CfnResolver>; readonly cfnRoles: Record<string, CfnRole>; readonly cfnTables: Record<string, CfnTable>; } // @public export interface AmplifyGraphqlApiProps { readonly apiName?: string; readonly authorizationModes: AuthorizationModes; // @deprecated readonly conflictResolution?: ConflictResolution; readonly dataStoreConfiguration?: DataStoreConfiguration; readonly definition: IAmplifyGraphqlDefinition; readonly functionNameMap?: Record<string, IFunction>; readonly functionSlots?: FunctionSlot[]; readonly logging?: Logging; readonly outputStorageStrategy?: IBackendOutputStorageStrategy; readonly predictionsBucket?: IBucket; readonly stackMappings?: Record<string, string>; readonly transformerPlugins?: any[]; readonly translationBehavior?: PartialTranslationBehavior; } // @public export interface AmplifyGraphqlApiResources { readonly cfnResources: AmplifyGraphqlApiCfnResources; readonly functions: Record<string, IFunction>; readonly graphqlApi: IGraphqlApi; readonly nestedStacks: Record<string, NestedStack>; readonly roles: Record<string, IRole>; readonly tables: Record<string, ITable>; } // @public export class AmplifyGraphqlDefinition { static combine(definitions: IAmplifyGraphqlDefinition[]): IAmplifyGraphqlDefinition; static fromFiles(...filePaths: string[]): IAmplifyGraphqlDefinition; static fromFilesAndStrategy(filePaths: string | string[], dataSourceStrategy?: ModelDataSourceStrategy): IAmplifyGraphqlDefinition; static fromString(schema: string, dataSourceStrategy?: ModelDataSourceStrategy): IAmplifyGraphqlDefinition; } // @public export interface ApiKeyAuthorizationConfig { readonly description?: string; readonly expires: Duration; } // @public export interface AuthorizationModes { readonly adminRoles?: IRole[]; readonly apiKeyConfig?: ApiKeyAuthorizationConfig; readonly defaultAuthorizationMode?: 'AWS_IAM' | 'AMAZON_COGNITO_USER_POOLS' | 'OPENID_CONNECT' | 'API_KEY' | 'AWS_LAMBDA'; readonly iamConfig?: IAMAuthorizationConfig; readonly identityPoolConfig?: IdentityPoolAuthorizationConfig; readonly lambdaConfig?: LambdaAuthorizationConfig; readonly oidcConfig?: OIDCAuthorizationConfig; readonly userPoolConfig?: UserPoolAuthorizationConfig; } // @public export interface AutomergeConflictResolutionStrategy extends ConflictResolutionStrategyBase { readonly handlerType: 'AUTOMERGE'; } // @public export type ConflictDetectionType = 'VERSION' | 'NONE'; // @public @deprecated export interface ConflictResolution extends DataStoreConfiguration { } // @public export type ConflictResolutionStrategy = AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy; // @public export interface ConflictResolutionStrategyBase { readonly detectionType: ConflictDetectionType; } // @public export interface CustomConflictResolutionStrategy extends ConflictResolutionStrategyBase { readonly conflictHandler: IFunction; readonly handlerType: 'LAMBDA'; } // @public export interface CustomSqlDataSourceStrategy { readonly fieldName: string; readonly strategy: SQLLambdaModelDataSourceStrategy; readonly typeName: 'Query' | 'Mutation'; } // @public export interface DataStoreConfiguration { readonly models?: Record<string, ConflictResolutionStrategy>; readonly project?: ConflictResolutionStrategy; } // @public export interface DefaultDynamoDbModelDataSourceStrategy { // (undocumented) readonly dbType: 'DYNAMODB'; // (undocumented) readonly provisionStrategy: 'DEFAULT'; } export { FieldLogLevel } // @public export type FunctionSlot = MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot; // @public export interface FunctionSlotBase { readonly fieldName: string; readonly function: FunctionSlotOverride; readonly slotIndex: number; } // @public export interface FunctionSlotOverride { readonly requestMappingTemplate?: MappingTemplate; readonly responseMappingTemplate?: MappingTemplate; } // @public export interface IAMAuthorizationConfig { // @deprecated readonly allowListedRoles?: (IRole | string)[]; // @deprecated readonly authenticatedUserRole?: IRole; readonly enableIamAuthorizationMode?: boolean; // @deprecated readonly identityPoolId?: string; // @deprecated readonly unauthenticatedUserRole?: IRole; } // @public export interface IAmplifyGraphqlDefinition { readonly customSqlDataSourceStrategies?: CustomSqlDataSourceStrategy[]; readonly dataSourceStrategies: Record<string, ModelDataSourceStrategy>; readonly functionSlots: FunctionSlot[]; readonly referencedLambdaFunctions?: Record<string, IFunction>; readonly schema: string; } // @public export interface IBackendOutputEntry { readonly payload: Record<string, string>; readonly version: string; } // @public export interface IBackendOutputStorageStrategy { addBackendOutputEntry(keyName: string, backendOutputEntry: IBackendOutputEntry): void; } // @public export interface IdentityPoolAuthorizationConfig { readonly authenticatedUserRole: IRole; readonly identityPoolId: string; readonly unauthenticatedUserRole: IRole; } // @public export interface ImportedAmplifyDynamoDbModelDataSourceStrategy { // (undocumented) readonly dbType: 'DYNAMODB'; // (undocumented) readonly provisionStrategy: 'IMPORTED_AMPLIFY_TABLE'; // (undocumented) readonly tableName: string; } // @public export interface LambdaAuthorizationConfig { readonly function: IFunction; readonly ttl: Duration; } // @public export interface LogConfig { readonly excludeVerboseContent?: boolean; readonly fieldLogLevel?: FieldLogLevel; readonly retention?: RetentionDays; } // @public export type Logging = true | LogConfig; // @public export type ModelDataSourceStrategy = DefaultDynamoDbModelDataSourceStrategy | AmplifyDynamoDbModelDataSourceStrategy | ImportedAmplifyDynamoDbModelDataSourceStrategy | SQLLambdaModelDataSourceStrategy; // @public export type ModelDataSourceStrategyDbType = 'DYNAMODB' | ModelDataSourceStrategySqlDbType; // @public export type ModelDataSourceStrategySqlDbType = 'MYSQL' | 'POSTGRES'; // @public export interface MutationFunctionSlot extends FunctionSlotBase { readonly slotName: 'init' | 'preAuth' | 'auth' | 'postAuth' | 'validate' | 'preUpdate' | 'postUpdate' | 'finish'; readonly typeName: 'Mutation'; } // @public export interface OIDCAuthorizationConfig { readonly clientId?: string; readonly oidcIssuerUrl: string; readonly oidcProviderName: string; readonly tokenExpiryFromAuth: Duration; readonly tokenExpiryFromIssue: Duration; } // @public export interface OptimisticConflictResolutionStrategy extends ConflictResolutionStrategyBase { readonly handlerType: 'OPTIMISTIC_CONCURRENCY'; } // @public export interface PartialTranslationBehavior { readonly allowDestructiveGraphqlSchemaUpdates?: boolean; readonly disableResolverDeduping?: boolean; readonly enableAutoIndexQueryNames?: boolean; readonly enableSearchNodeToNodeEncryption?: boolean; readonly enableTransformerCfnOutputs?: boolean; readonly populateOwnerFieldForStaticGroupAuth?: boolean; // @internal readonly _provisionHotswapFriendlyResources?: boolean; readonly replaceTableUponGsiUpdate?: boolean; readonly respectPrimaryKeyAttributesOnConnectionField?: boolean; readonly sandboxModeEnabled?: boolean; readonly secondaryKeyAsGSI?: boolean; readonly shouldDeepMergeDirectiveConfigDefaults?: boolean; readonly subscriptionsInheritPrimaryAuth?: boolean; readonly suppressApiKeyGeneration?: boolean; readonly useSubUsernameForDefaultIdentityClaim?: boolean; } // @public export interface PointInTimeRecoverySpecification { readonly pointInTimeRecoveryEnabled: boolean; readonly recoveryPeriodInDays?: number; } // @public export interface ProvisionedConcurrencyConfig { readonly provisionedConcurrentExecutions: number; } // @public export interface ProvisionedThroughput { readonly readCapacityUnits: number; readonly writeCapacityUnits: number; } // @public export interface QueryFunctionSlot extends FunctionSlotBase { readonly slotName: 'init' | 'preAuth' | 'auth' | 'postAuth' | 'preDataLoad' | 'postDataLoad' | 'finish'; readonly typeName: 'Query'; } export { RetentionDays } // @public export interface SQLLambdaModelDataSourceStrategy { readonly customSqlStatements?: Record<string, string>; readonly dbConnectionConfig: SqlModelDataSourceDbConnectionConfig; readonly dbType: ModelDataSourceStrategySqlDbType; readonly name: string; readonly sqlLambdaProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfig; readonly vpcConfiguration?: VpcConfig; } // @public export class SQLLambdaModelDataSourceStrategyFactory { static fromCustomSqlFiles(sqlFiles: string[], options: Exclude<SQLLambdaModelDataSourceStrategy, 'customSqlStatements'>): SQLLambdaModelDataSourceStrategy; } // @public export type SqlModelDataSourceDbConnectionConfig = SqlModelDataSourceSecretsManagerDbConnectionConfig | SqlModelDataSourceSsmDbConnectionConfig | SqlModelDataSourceSsmDbConnectionStringConfig; // @public export interface SqlModelDataSourceSecretsManagerDbConnectionConfig { readonly databaseName: string; readonly hostname: string; readonly keyArn?: string; readonly port: number; readonly secretArn: string; readonly sslCertConfig?: SslCertConfig; } // @public export interface SqlModelDataSourceSsmDbConnectionConfig { readonly databaseNameSsmPath: string; readonly hostnameSsmPath: string; readonly passwordSsmPath: string; readonly portSsmPath: string; readonly sslCertConfig?: SslCertConfig; readonly usernameSsmPath: string; } // @public export interface SqlModelDataSourceSsmDbConnectionStringConfig { readonly connectionUriSsmPath: string | string[]; readonly sslCertConfig?: SslCertConfig; } // @public export interface SSESpecification { readonly kmsMasterKeyId?: string; readonly sseEnabled: boolean; readonly sseType?: SSEType; } // @public export enum SSEType { // (undocumented) KMS = "KMS" } // @public export interface SslCertConfig { } // @public (undocumented) export interface SslCertSsmPathConfig extends SslCertConfig { readonly ssmPath: string | string[]; } // @public export interface StreamSpecification { readonly streamViewType: StreamViewType; } // @public export interface SubnetAvailabilityZone { readonly availabilityZone: string; readonly subnetId: string; } // @public export interface SubscriptionFunctionSlot extends FunctionSlotBase { readonly slotName: 'init' | 'preAuth' | 'auth' | 'postAuth' | 'preSubscribe'; readonly typeName: 'Subscription'; } // @public export interface TimeToLiveSpecification { readonly attributeName?: string; readonly enabled: boolean; } // @public export interface TranslationBehavior { readonly allowDestructiveGraphqlSchemaUpdates: boolean; readonly disableResolverDeduping: boolean; readonly enableAutoIndexQueryNames: boolean; // (undocumented) readonly enableSearchNodeToNodeEncryption: boolean; readonly enableTransformerCfnOutputs: boolean; readonly populateOwnerFieldForStaticGroupAuth: boolean; readonly replaceTableUponGsiUpdate: boolean; readonly respectPrimaryKeyAttributesOnConnectionField: boolean; readonly sandboxModeEnabled: boolean; readonly secondaryKeyAsGSI: boolean; readonly shouldDeepMergeDirectiveConfigDefaults: boolean; readonly subscriptionsInheritPrimaryAuth: boolean; readonly suppressApiKeyGeneration: boolean; readonly useSubUsernameForDefaultIdentityClaim: boolean; } // @public export interface UserPoolAuthorizationConfig { readonly userPool: IUserPool; } // @public export interface VpcConfig { readonly securityGroupIds: string[]; readonly subnetAvailabilityZoneConfig: SubnetAvailabilityZone[]; readonly vpcId: string; } // (No @packageDocumentation comment for this package) ```