@aws-amplify/graphql-api-construct 1.1.0 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. package/.jsii +139 -138
  2. package/CHANGELOG.md +10 -0
  3. package/README.md +2 -0
  4. package/lib/amplify-graphql-api.js +1 -1
  5. package/lib/amplify-graphql-definition.js +1 -1
  6. package/lib/types.d.ts +1 -0
  7. package/lib/types.js +1 -1
  8. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +10 -0
  9. package/node_modules/@aws-amplify/graphql-auth-transformer/LICENSE +201 -0
  10. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +2 -2
  11. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
  12. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/iam.d.ts +2 -1
  13. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/iam.d.ts.map +1 -1
  14. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/iam.js +3 -3
  15. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/iam.js.map +1 -1
  16. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +9 -8
  17. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
  18. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +4 -4
  19. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  20. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +3 -3
  21. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  22. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +3 -3
  23. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
  24. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +4 -4
  25. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
  26. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  27. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +7 -7
  28. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +4 -0
  29. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  30. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  31. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  32. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +3 -3
  33. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  34. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  35. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +3 -3
  36. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
  37. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +5 -5
  38. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
  39. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  40. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +4 -4
  41. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +8 -0
  42. package/node_modules/@aws-amplify/graphql-transformer/LICENSE +201 -0
  43. package/node_modules/@aws-amplify/graphql-transformer/package.json +14 -13
  44. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +6 -0
  45. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js +1 -1
  46. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js.map +1 -1
  47. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +1 -1
  48. package/package.json +14 -14
  49. package/src/types.ts +1 -0
package/.jsii CHANGED
@@ -8,18 +8,18 @@
8
8
  "bundled": {
9
9
  "@aws-amplify/backend-output-schemas": "^0.2.0-alpha.3",
10
10
  "@aws-amplify/backend-output-storage": "^0.1.1-alpha.0",
11
- "@aws-amplify/graphql-auth-transformer": "3.1.4",
12
- "@aws-amplify/graphql-default-value-transformer": "2.1.4",
13
- "@aws-amplify/graphql-function-transformer": "2.1.3",
14
- "@aws-amplify/graphql-http-transformer": "2.1.3",
15
- "@aws-amplify/graphql-index-transformer": "2.1.4",
16
- "@aws-amplify/graphql-maps-to-transformer": "3.2.1",
17
- "@aws-amplify/graphql-model-transformer": "2.2.0",
18
- "@aws-amplify/graphql-predictions-transformer": "2.1.3",
19
- "@aws-amplify/graphql-relational-transformer": "2.1.4",
20
- "@aws-amplify/graphql-searchable-transformer": "2.2.0",
21
- "@aws-amplify/graphql-transformer": "1.2.0",
22
- "@aws-amplify/graphql-transformer-core": "2.2.0",
11
+ "@aws-amplify/graphql-auth-transformer": "3.1.6",
12
+ "@aws-amplify/graphql-default-value-transformer": "2.1.5",
13
+ "@aws-amplify/graphql-function-transformer": "2.1.4",
14
+ "@aws-amplify/graphql-http-transformer": "2.1.4",
15
+ "@aws-amplify/graphql-index-transformer": "2.1.5",
16
+ "@aws-amplify/graphql-maps-to-transformer": "3.2.2",
17
+ "@aws-amplify/graphql-model-transformer": "2.2.1",
18
+ "@aws-amplify/graphql-predictions-transformer": "2.1.4",
19
+ "@aws-amplify/graphql-relational-transformer": "2.1.5",
20
+ "@aws-amplify/graphql-searchable-transformer": "2.2.1",
21
+ "@aws-amplify/graphql-transformer": "1.2.2",
22
+ "@aws-amplify/graphql-transformer-core": "2.2.1",
23
23
  "@aws-amplify/graphql-transformer-interfaces": "3.2.0",
24
24
  "charenc": "^0.0.2",
25
25
  "crypt": "^0.0.2",
@@ -3508,7 +3508,7 @@
3508
3508
  },
3509
3509
  "name": "@aws-amplify/graphql-api-construct",
3510
3510
  "readme": {
3511
- "markdown": "# Amplify Graphql API Construct\n\n[![View on Construct Hub](https://constructs.dev/badge?package=%40aws-amplify%2Fgraphql-construct-alpha)](https://constructs.dev/packages/@aws-amplify/graphql-api-construct)\n\nThis package vends an L3 CDK Construct wrapping the behavior of the Amplify GraphQL Transformer. This enables quick development and interation of AppSync APIs which support the Amplify GraphQL Directives. For more information on schema modeling in GraphQL, please refer to the [amplify developer docs](https://docs.amplify.aws/cli/graphql/overview/).\n\nThe primary way to use this construct is to invoke it with a provided schema (either as an inline graphql string, or as one or more `appsync.SchemaFile`) objects, and with authorization config provided. There are 5 supported methods for authorization of an AppSync API, all of which are supported by this construct. For more information on authorization rule definitions in Amplify, refer to the [authorization docs](https://docs.amplify.aws/cli/graphql/authorization-rules/). Note: currently at least one authorization rule is required, and if multiple are specified, a `defaultAuthorizationMode` must be specified on the api as well. Specified authorization modes must be a superset of those configured in the graphql schema.\n\n## Examples\n\n### Simple Todo List With Cognito Userpool-based Owner Authorization\n\nIn this example, we create a single model, which will use `user pool` auth in order to allow logged in users to create and manage their own `todos` privately.\n\nWe create a cdk App and Stack, though you may be deploying this to a custom stack, this is purely illustrative for a concise demo.\n\nWe then wire this through to import a user pool which was already deployed (creating and deploying is out of scope for this example).\n\n```ts\nimport { App, Stack } from 'aws-cdk-lib';\nimport { UserPool } from 'aws-cdk-lib/aws-cognito';\nimport { AmplifyGraphqlApi, AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct';\n\nconst app = new App();\nconst stack = new Stack(app, 'TodoStack');\n\nnew AmplifyGraphqlApi(stack, 'TodoApp', {\n definition: AmplifyGraphqlDefinition.fromString(/* GraphQL */ `\n type Todo @model @auth(rules: [{ allow: owner }]) {\n description: String!\n completed: Boolean\n }\n `),\n authorizationModes: {\n userPoolConfig: {\n userPool: UserPool.fromUserPoolId(stack, 'ImportedUserPool', '<YOUR_USER_POOL_ID>'),\n },\n },\n});\n```\n\n### Multiple related models, with public read access, and admin read/write access\n\nIn this example, we create a two related models, which will use which logged in users in the 'Author' and 'Admin' user groups will have\nfull access to, and customers requesting with api key will only have read permissions on.\n\n```ts\nimport { App, Stack } from 'aws-cdk-lib';\nimport { UserPool } from 'aws-cdk-lib/aws-cognito';\nimport { AmplifyGraphqlApi, AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct';\n\nconst app = new App();\nconst stack = new Stack(app, 'BlogStack');\n\nnew AmplifyGraphqlApi(stack, 'BlogApp', {\n definition: AmplifyGraphqlDefinition.fromString(/* GraphQL */ `\n type Blog @model @auth(rules: [{ allow: public, operations: [read] }, { allow: groups, groups: [\"Author\", \"Admin\"] }]) {\n title: String!\n description: String\n posts: [Post] @hasMany\n }\n\n type Post @model @auth(rules: [{ allow: public, operations: [read] }, { allow: groups, groups: [\"Author\", \"Admin\"] }]) {\n title: String!\n content: [String]\n blog: Blog @belongsTo\n }\n `),\n authorizationModes: {\n defaultAuthorizationMode: 'API_KEY',\n apiKeyConfig: {\n description: 'Api Key for public access',\n expires: cdk.Duration.days(7),\n },\n userPoolConfig: {\n userPool: UserPool.fromUserPoolId(stack, 'ImportedUserPool', '<YOUR_USER_POOL_ID>'),\n },\n },\n});\n```\n\n### Import GraphQL Schema from files, instead of inline.\n\nIn this example, we import the schema definition itself from one or more local file, rather than an inline graphql string.\n\n```graphql\n# todo.graphql\ntype Todo @model @auth(rules: [{ allow: owner }]) {\n content: String!\n done: Boolean\n}\n```\n\n```graphql\n# blog.graphql\ntype Blog @model @auth(rules: [{ allow: owner }, { allow: public, operations: [read] }]) {\n title: String!\n description: String\n posts: [Post] @hasMany\n}\n\ntype Post @model @auth(rules: [{ allow: owner }, { allow: public, operations: [read] }]) {\n title: String!\n content: [String]\n blog: Blog @belongsTo\n}\n```\n\n```ts\n// app.ts\nimport { App, Stack } from 'aws-cdk-lib';\nimport { UserPool } from 'aws-cdk-lib/aws-cognito';\nimport { AmplifyGraphqlApi, AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct';\n\nconst app = new App();\nconst stack = new Stack(app, 'MultiFileStack');\n\nnew AmplifyGraphqlApi(stack, 'MultiFileDefinition', {\n definition: AmplifyGraphqlDefinition.fromFiles(path.join(__dirname, 'todo.graphql'), path.join(__dirname, 'blog.graphql')),\n authorizationModes: {\n defaultAuthorizationMode: 'API_KEY',\n apiKeyConfig: {\n description: 'Api Key for public access',\n expires: cdk.Duration.days(7),\n },\n userPoolConfig: {\n userPool: UserPool.fromUserPoolId(stack, 'ImportedUserPool', '<YOUR_USER_POOL_ID>'),\n },\n },\n});\n```\n\n# API Reference <a name=\"API Reference\" id=\"api-reference\"></a>\n\n## Constructs <a name=\"Constructs\" id=\"Constructs\"></a>\n\n### AmplifyGraphqlApi <a name=\"AmplifyGraphqlApi\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi\"></a>\n\nL3 Construct which invokes the Amplify Transformer Pattern over an input Graphql Schema.\n\nThis can be used to quickly define appsync apis which support full CRUD+List and Subscriptions, relationships,\nauth, search over data, the ability to inject custom business logic and query/mutation operations, and connect to ML services.\n\nFor more information, refer to the docs links below:\nData Modeling - https://docs.amplify.aws/cli/graphql/data-modeling/\nAuthorization - https://docs.amplify.aws/cli/graphql/authorization-rules/\nCustom Business Logic - https://docs.amplify.aws/cli/graphql/custom-business-logic/\nSearch - https://docs.amplify.aws/cli/graphql/search-and-result-aggregations/\nML Services - https://docs.amplify.aws/cli/graphql/connect-to-machine-learning-services/\n\nFor a full reference of the supported custom graphql directives - https://docs.amplify.aws/cli/graphql/directives-reference/\n\nThe output of this construct is a mapping of L1 resources generated by the transformer, which generally follow the access pattern\n\n```typescript\n const api = new AmplifyGraphQlApi(this, 'api', { <params> });\n api.resources.api.xrayEnabled = true;\n Object.values(api.resources.tables).forEach(table => table.pointInTimeRecoverySpecification = { pointInTimeRecoveryEnabled: false });\n```\n`resources.<ResourceType>.<ResourceName>` - you can then perform any CDK action on these resulting resoureces.\n\n#### Initializers <a name=\"Initializers\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlApi } from '@aws-amplify/graphql-api-construct'\n\nnew AmplifyGraphqlApi(scope: Construct, id: string, props: AmplifyGraphqlApiProps)\n```\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.scope\">scope</a></code> | <code>constructs.Construct</code> | the scope to create this construct within. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.id\">id</a></code> | <code>string</code> | the id to use for this api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.props\">props</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps\">AmplifyGraphqlApiProps</a></code> | the properties used to configure the generated api. |\n\n---\n\n##### `scope`<sup>Required</sup> <a name=\"scope\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.scope\"></a>\n\n- *Type:* constructs.Construct\n\nthe scope to create this construct within.\n\n---\n\n##### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.id\"></a>\n\n- *Type:* string\n\nthe id to use for this api.\n\n---\n\n##### `props`<sup>Required</sup> <a name=\"props\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.props\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps\">AmplifyGraphqlApiProps</a>\n\nthe properties used to configure the generated api.\n\n---\n\n#### Methods <a name=\"Methods\" id=\"Methods\"></a>\n\n| **Name** | **Description** |\n| --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.toString\">toString</a></code> | Returns a string representation of this construct. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource\">addDynamoDbDataSource</a></code> | Add a new DynamoDB data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource\">addElasticsearchDataSource</a></code> | Add a new elasticsearch data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource\">addEventBridgeDataSource</a></code> | Add an EventBridge data source to this api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addFunction\">addFunction</a></code> | Add an appsync function to the api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource\">addHttpDataSource</a></code> | Add a new http data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource\">addLambdaDataSource</a></code> | Add a new Lambda data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addNoneDataSource\">addNoneDataSource</a></code> | Add a new dummy data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource\">addOpenSearchDataSource</a></code> | dd a new OpenSearch data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource\">addRdsDataSource</a></code> | Add a new Rds data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addResolver\">addResolver</a></code> | Add a resolver to the api. |\n\n---\n\n##### `toString` <a name=\"toString\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.toString\"></a>\n\n```typescript\npublic toString(): string\n```\n\nReturns a string representation of this construct.\n\n##### `addDynamoDbDataSource` <a name=\"addDynamoDbDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource\"></a>\n\n```typescript\npublic addDynamoDbDataSource(id: string, table: ITable, options?: DataSourceOptions): DynamoDbDataSource\n```\n\nAdd a new DynamoDB data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `table`<sup>Required</sup> <a name=\"table\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource.parameter.table\"></a>\n\n- *Type:* aws-cdk-lib.aws_dynamodb.ITable\n\nThe DynamoDB table backing this data source.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### ~~`addElasticsearchDataSource`~~ <a name=\"addElasticsearchDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource\"></a>\n\n```typescript\npublic addElasticsearchDataSource(id: string, domain: IDomain, options?: DataSourceOptions): ElasticsearchDataSource\n```\n\nAdd a new elasticsearch data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `domain`<sup>Required</sup> <a name=\"domain\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource.parameter.domain\"></a>\n\n- *Type:* aws-cdk-lib.aws_elasticsearch.IDomain\n\nThe elasticsearch domain for this data source.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addEventBridgeDataSource` <a name=\"addEventBridgeDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource\"></a>\n\n```typescript\npublic addEventBridgeDataSource(id: string, eventBus: IEventBus, options?: DataSourceOptions): EventBridgeDataSource\n```\n\nAdd an EventBridge data source to this api.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `eventBus`<sup>Required</sup> <a name=\"eventBus\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource.parameter.eventBus\"></a>\n\n- *Type:* aws-cdk-lib.aws_events.IEventBus\n\nThe EventBridge EventBus on which to put events.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addFunction` <a name=\"addFunction\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addFunction\"></a>\n\n```typescript\npublic addFunction(id: string, props: AddFunctionProps): AppsyncFunction\n```\n\nAdd an appsync function to the api.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addFunction.parameter.id\"></a>\n\n- *Type:* string\n\nthe function's id.\n\n---\n\n###### `props`<sup>Required</sup> <a name=\"props\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addFunction.parameter.props\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps\">AddFunctionProps</a>\n\n---\n\n##### `addHttpDataSource` <a name=\"addHttpDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource\"></a>\n\n```typescript\npublic addHttpDataSource(id: string, endpoint: string, options?: HttpDataSourceOptions): HttpDataSource\n```\n\nAdd a new http data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `endpoint`<sup>Required</sup> <a name=\"endpoint\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource.parameter.endpoint\"></a>\n\n- *Type:* string\n\nThe http endpoint.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.HttpDataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addLambdaDataSource` <a name=\"addLambdaDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource\"></a>\n\n```typescript\npublic addLambdaDataSource(id: string, lambdaFunction: IFunction, options?: DataSourceOptions): LambdaDataSource\n```\n\nAdd a new Lambda data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `lambdaFunction`<sup>Required</sup> <a name=\"lambdaFunction\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource.parameter.lambdaFunction\"></a>\n\n- *Type:* aws-cdk-lib.aws_lambda.IFunction\n\nThe Lambda function to call to interact with this data source.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addNoneDataSource` <a name=\"addNoneDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addNoneDataSource\"></a>\n\n```typescript\npublic addNoneDataSource(id: string, options?: DataSourceOptions): NoneDataSource\n```\n\nAdd a new dummy data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\nUseful for pipeline resolvers and for backend changes that don't require a data source.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addNoneDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addNoneDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addOpenSearchDataSource` <a name=\"addOpenSearchDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource\"></a>\n\n```typescript\npublic addOpenSearchDataSource(id: string, domain: IDomain, options?: DataSourceOptions): OpenSearchDataSource\n```\n\ndd a new OpenSearch data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `domain`<sup>Required</sup> <a name=\"domain\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource.parameter.domain\"></a>\n\n- *Type:* aws-cdk-lib.aws_opensearchservice.IDomain\n\nThe OpenSearch domain for this data source.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addRdsDataSource` <a name=\"addRdsDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource\"></a>\n\n```typescript\npublic addRdsDataSource(id: string, serverlessCluster: IServerlessCluster, secretStore: ISecret, databaseName?: string, options?: DataSourceOptions): RdsDataSource\n```\n\nAdd a new Rds data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `serverlessCluster`<sup>Required</sup> <a name=\"serverlessCluster\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.serverlessCluster\"></a>\n\n- *Type:* aws-cdk-lib.aws_rds.IServerlessCluster\n\nThe serverless cluster to interact with this data source.\n\n---\n\n###### `secretStore`<sup>Required</sup> <a name=\"secretStore\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.secretStore\"></a>\n\n- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret\n\nThe secret store that contains the username and password for the serverless cluster.\n\n---\n\n###### `databaseName`<sup>Optional</sup> <a name=\"databaseName\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.databaseName\"></a>\n\n- *Type:* string\n\nThe optional name of the database to use within the cluster.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addResolver` <a name=\"addResolver\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addResolver\"></a>\n\n```typescript\npublic addResolver(id: string, props: ExtendedResolverProps): Resolver\n```\n\nAdd a resolver to the api.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addResolver.parameter.id\"></a>\n\n- *Type:* string\n\nThe resolver's id.\n\n---\n\n###### `props`<sup>Required</sup> <a name=\"props\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addResolver.parameter.props\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.ExtendedResolverProps\n\nthe resolver properties.\n\n---\n\n#### Static Functions <a name=\"Static Functions\" id=\"Static Functions\"></a>\n\n| **Name** | **Description** |\n| --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.isConstruct\">isConstruct</a></code> | Checks if `x` is a construct. |\n\n---\n\n##### ~~`isConstruct`~~ <a name=\"isConstruct\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.isConstruct\"></a>\n\n```typescript\nimport { AmplifyGraphqlApi } from '@aws-amplify/graphql-api-construct'\n\nAmplifyGraphqlApi.isConstruct(x: any)\n```\n\nChecks if `x` is a construct.\n\n###### `x`<sup>Required</sup> <a name=\"x\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.isConstruct.parameter.x\"></a>\n\n- *Type:* any\n\nAny object.\n\n---\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.node\">node</a></code> | <code>constructs.Node</code> | The tree node. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.generatedFunctionSlots\">generatedFunctionSlots</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]</code> | Resolvers generated by the transform process, persisted on the side in order to facilitate pulling a manifest for the purposes of inspecting and producing overrides. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.graphqlUrl\">graphqlUrl</a></code> | <code>string</code> | Graphql URL For the generated API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.realtimeUrl\">realtimeUrl</a></code> | <code>string</code> | Realtime URL For the generated API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.resources\">resources</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources\">AmplifyGraphqlApiResources</a></code> | Generated L1 and L2 CDK resources. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.apiKey\">apiKey</a></code> | <code>string</code> | Generated Api Key if generated. |\n\n---\n\n##### `node`<sup>Required</sup> <a name=\"node\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.node\"></a>\n\n```typescript\npublic readonly node: Node;\n```\n\n- *Type:* constructs.Node\n\nThe tree node.\n\n---\n\n##### `generatedFunctionSlots`<sup>Required</sup> <a name=\"generatedFunctionSlots\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.generatedFunctionSlots\"></a>\n\n```typescript\npublic readonly generatedFunctionSlots: MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[];\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]\n\nResolvers generated by the transform process, persisted on the side in order to facilitate pulling a manifest for the purposes of inspecting and producing overrides.\n\n---\n\n##### `graphqlUrl`<sup>Required</sup> <a name=\"graphqlUrl\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.graphqlUrl\"></a>\n\n```typescript\npublic readonly graphqlUrl: string;\n```\n\n- *Type:* string\n\nGraphql URL For the generated API.\n\nMay be a CDK Token.\n\n---\n\n##### `realtimeUrl`<sup>Required</sup> <a name=\"realtimeUrl\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.realtimeUrl\"></a>\n\n```typescript\npublic readonly realtimeUrl: string;\n```\n\n- *Type:* string\n\nRealtime URL For the generated API.\n\nMay be a CDK Token.\n\n---\n\n##### `resources`<sup>Required</sup> <a name=\"resources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.resources\"></a>\n\n```typescript\npublic readonly resources: AmplifyGraphqlApiResources;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources\">AmplifyGraphqlApiResources</a>\n\nGenerated L1 and L2 CDK resources.\n\n---\n\n##### `apiKey`<sup>Optional</sup> <a name=\"apiKey\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.apiKey\"></a>\n\n```typescript\npublic readonly apiKey: string;\n```\n\n- *Type:* string\n\nGenerated Api Key if generated.\n\nMay be a CDK Token.\n\n---\n\n\n## Structs <a name=\"Structs\" id=\"Structs\"></a>\n\n### AddFunctionProps <a name=\"AddFunctionProps\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps\"></a>\n\nInput type properties when adding a new appsync.AppsyncFunction to the generated API. This is equivalent to the Omit<appsync.AppsyncFunctionProps, 'api'>.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.Initializer\"></a>\n\n```typescript\nimport { AddFunctionProps } from '@aws-amplify/graphql-api-construct'\n\nconst addFunctionProps: AddFunctionProps = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.dataSource\">dataSource</a></code> | <code>aws-cdk-lib.aws_appsync.BaseDataSource</code> | the data source linked to this AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.name\">name</a></code> | <code>string</code> | the name of the AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.code\">code</a></code> | <code>aws-cdk-lib.aws_appsync.Code</code> | The function code. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.description\">description</a></code> | <code>string</code> | the description for this AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.requestMappingTemplate\">requestMappingTemplate</a></code> | <code>aws-cdk-lib.aws_appsync.MappingTemplate</code> | the request mapping template for the AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.responseMappingTemplate\">responseMappingTemplate</a></code> | <code>aws-cdk-lib.aws_appsync.MappingTemplate</code> | the response mapping template for the AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.runtime\">runtime</a></code> | <code>aws-cdk-lib.aws_appsync.FunctionRuntime</code> | The functions runtime. |\n\n---\n\n##### `dataSource`<sup>Required</sup> <a name=\"dataSource\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.dataSource\"></a>\n\n```typescript\npublic readonly dataSource: BaseDataSource;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.BaseDataSource\n\nthe data source linked to this AppSync Function.\n\n---\n\n##### `name`<sup>Required</sup> <a name=\"name\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.name\"></a>\n\n```typescript\npublic readonly name: string;\n```\n\n- *Type:* string\n\nthe name of the AppSync Function.\n\n---\n\n##### `code`<sup>Optional</sup> <a name=\"code\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.code\"></a>\n\n```typescript\npublic readonly code: Code;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.Code\n- *Default:* no code is used\n\nThe function code.\n\n---\n\n##### `description`<sup>Optional</sup> <a name=\"description\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.description\"></a>\n\n```typescript\npublic readonly description: string;\n```\n\n- *Type:* string\n- *Default:* no description\n\nthe description for this AppSync Function.\n\n---\n\n##### `requestMappingTemplate`<sup>Optional</sup> <a name=\"requestMappingTemplate\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.requestMappingTemplate\"></a>\n\n```typescript\npublic readonly requestMappingTemplate: MappingTemplate;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.MappingTemplate\n- *Default:* no request mapping template\n\nthe request mapping template for the AppSync Function.\n\n---\n\n##### `responseMappingTemplate`<sup>Optional</sup> <a name=\"responseMappingTemplate\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.responseMappingTemplate\"></a>\n\n```typescript\npublic readonly responseMappingTemplate: MappingTemplate;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.MappingTemplate\n- *Default:* no response mapping template\n\nthe response mapping template for the AppSync Function.\n\n---\n\n##### `runtime`<sup>Optional</sup> <a name=\"runtime\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.runtime\"></a>\n\n```typescript\npublic readonly runtime: FunctionRuntime;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.FunctionRuntime\n- *Default:* no function runtime, VTL mapping templates used\n\nThe functions runtime.\n\n---\n\n### AmplifyGraphqlApiCfnResources <a name=\"AmplifyGraphqlApiCfnResources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources\"></a>\n\nL1 CDK resources from the Api which were generated as part of the transform.\n\nThese are potentially stored under nested stacks, but presented organized by type instead.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlApiCfnResources } from '@aws-amplify/graphql-api-construct'\n\nconst amplifyGraphqlApiCfnResources: AmplifyGraphqlApiCfnResources = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.additionalCfnResources\">additionalCfnResources</a></code> | <code>{[ key: string ]: aws-cdk-lib.CfnResource}</code> | Remaining L1 resources generated, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnDataSources\">cfnDataSources</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_appsync.CfnDataSource}</code> | The Generated AppSync DataSource L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnFunctionConfigurations\">cfnFunctionConfigurations</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_appsync.CfnFunctionConfiguration}</code> | The Generated AppSync Function L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnFunctions\">cfnFunctions</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_lambda.CfnFunction}</code> | The Generated Lambda Function L1 Resources, keyed by function name. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnGraphqlApi\">cfnGraphqlApi</a></code> | <code>aws-cdk-lib.aws_appsync.CfnGraphQLApi</code> | The Generated AppSync Api L1 Resource. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnGraphqlSchema\">cfnGraphqlSchema</a></code> | <code>aws-cdk-lib.aws_appsync.CfnGraphQLSchema</code> | The Generated AppSync Schema L1 Resource. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnResolvers\">cfnResolvers</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_appsync.CfnResolver}</code> | The Generated AppSync Resolver L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnRoles\">cfnRoles</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_iam.CfnRole}</code> | The Generated IAM Role L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnTables\">cfnTables</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_dynamodb.CfnTable}</code> | The Generated DynamoDB Table L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnApiKey\">cfnApiKey</a></code> | <code>aws-cdk-lib.aws_appsync.CfnApiKey</code> | The Generated AppSync Api Key L1 Resource. |\n\n---\n\n##### `additionalCfnResources`<sup>Required</sup> <a name=\"additionalCfnResources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.additionalCfnResources\"></a>\n\n```typescript\npublic readonly additionalCfnResources: {[ key: string ]: CfnResource};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.CfnResource}\n\nRemaining L1 resources generated, keyed by logicalId.\n\n---\n\n##### `cfnDataSources`<sup>Required</sup> <a name=\"cfnDataSources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnDataSources\"></a>\n\n```typescript\npublic readonly cfnDataSources: {[ key: string ]: CfnDataSource};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_appsync.CfnDataSource}\n\nThe Generated AppSync DataSource L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnFunctionConfigurations`<sup>Required</sup> <a name=\"cfnFunctionConfigurations\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnFunctionConfigurations\"></a>\n\n```typescript\npublic readonly cfnFunctionConfigurations: {[ key: string ]: CfnFunctionConfiguration};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_appsync.CfnFunctionConfiguration}\n\nThe Generated AppSync Function L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnFunctions`<sup>Required</sup> <a name=\"cfnFunctions\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnFunctions\"></a>\n\n```typescript\npublic readonly cfnFunctions: {[ key: string ]: CfnFunction};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_lambda.CfnFunction}\n\nThe Generated Lambda Function L1 Resources, keyed by function name.\n\n---\n\n##### `cfnGraphqlApi`<sup>Required</sup> <a name=\"cfnGraphqlApi\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnGraphqlApi\"></a>\n\n```typescript\npublic readonly cfnGraphqlApi: CfnGraphQLApi;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.CfnGraphQLApi\n\nThe Generated AppSync Api L1 Resource.\n\n---\n\n##### `cfnGraphqlSchema`<sup>Required</sup> <a name=\"cfnGraphqlSchema\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnGraphqlSchema\"></a>\n\n```typescript\npublic readonly cfnGraphqlSchema: CfnGraphQLSchema;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.CfnGraphQLSchema\n\nThe Generated AppSync Schema L1 Resource.\n\n---\n\n##### `cfnResolvers`<sup>Required</sup> <a name=\"cfnResolvers\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnResolvers\"></a>\n\n```typescript\npublic readonly cfnResolvers: {[ key: string ]: CfnResolver};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_appsync.CfnResolver}\n\nThe Generated AppSync Resolver L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnRoles`<sup>Required</sup> <a name=\"cfnRoles\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnRoles\"></a>\n\n```typescript\npublic readonly cfnRoles: {[ key: string ]: CfnRole};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_iam.CfnRole}\n\nThe Generated IAM Role L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnTables`<sup>Required</sup> <a name=\"cfnTables\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnTables\"></a>\n\n```typescript\npublic readonly cfnTables: {[ key: string ]: CfnTable};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_dynamodb.CfnTable}\n\nThe Generated DynamoDB Table L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnApiKey`<sup>Optional</sup> <a name=\"cfnApiKey\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnApiKey\"></a>\n\n```typescript\npublic readonly cfnApiKey: CfnApiKey;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.CfnApiKey\n\nThe Generated AppSync Api Key L1 Resource.\n\n---\n\n### AmplifyGraphqlApiProps <a name=\"AmplifyGraphqlApiProps\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps\"></a>\n\nInput props for the AmplifyGraphqlApi construct.\n\nSpecifies what the input to transform into an Api, and configurations for\nthe transformation process.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlApiProps } from '@aws-amplify/graphql-api-construct'\n\nconst amplifyGraphqlApiProps: AmplifyGraphqlApiProps = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.authorizationModes\">authorizationModes</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes\">AuthorizationModes</a></code> | Required auth modes for the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.definition\">definition</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition\">IAmplifyGraphqlDefinition</a></code> | The definition to transform in a full Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.apiName\">apiName</a></code> | <code>string</code> | Name to be used for the AppSync Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.conflictResolution\">conflictResolution</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.ConflictResolution\">ConflictResolution</a></code> | Configure conflict resolution on the Api, which is required to enable DataStore Api functionality. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.functionNameMap\">functionNameMap</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}</code> | Lambda functions referenced in the definitions's. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.functionSlots\">functionSlots</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]</code> | Overrides for a given slot in the generated resolver pipelines. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.outputStorageStrategy\">outputStorageStrategy</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy\">IBackendOutputStorageStrategy</a></code> | Strategy to store construct outputs. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.predictionsBucket\">predictionsBucket</a></code> | <code>aws-cdk-lib.aws_s3.IBucket</code> | If using predictions, a bucket must be provided which will be used to search for assets. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.stackMappings\">stackMappings</a></code> | <code>{[ key: string ]: string}</code> | StackMappings override the assigned nested stack on a per-resource basis. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.transformerPlugins\">transformerPlugins</a></code> | <code>any[]</code> | Provide a list of additional custom transformers which are injected into the transform process. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.translationBehavior\">translationBehavior</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior\">PartialTranslationBehavior</a></code> | This replaces feature flags from the Api construct, for general information on what these parameters do, refer to https://docs.amplify.aws/cli/reference/feature-flags/#graphQLTransformer. |\n\n---\n\n##### `authorizationModes`<sup>Required</sup> <a name=\"authorizationModes\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.authorizationModes\"></a>\n\n```typescript\npublic readonly authorizationModes: AuthorizationModes;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes\">AuthorizationModes</a>\n\nRequired auth modes for the Api.\n\nThis object must be a superset of the configured auth providers in the Api definition.\nFor more information, refer to https://docs.amplify.aws/cli/graphql/authorization-rules/\n\n---\n\n##### `definition`<sup>Required</sup> <a name=\"definition\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.definition\"></a>\n\n```typescript\npublic readonly definition: IAmplifyGraphqlDefinition;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition\">IAmplifyGraphqlDefinition</a>\n\nThe definition to transform in a full Api.\n\nCan be constructed via the AmplifyGraphqlDefinition class.\n\n---\n\n##### `apiName`<sup>Optional</sup> <a name=\"apiName\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.apiName\"></a>\n\n```typescript\npublic readonly apiName: string;\n```\n\n- *Type:* string\n\nName to be used for the AppSync Api.\n\nDefault: construct id.\n\n---\n\n##### `conflictResolution`<sup>Optional</sup> <a name=\"conflictResolution\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.conflictResolution\"></a>\n\n```typescript\npublic readonly conflictResolution: ConflictResolution;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.ConflictResolution\">ConflictResolution</a>\n\nConfigure conflict resolution on the Api, which is required to enable DataStore Api functionality.\n\nFor more information, refer to https://docs.amplify.aws/lib/datastore/getting-started/q/platform/js/\n\n---\n\n##### `functionNameMap`<sup>Optional</sup> <a name=\"functionNameMap\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.functionNameMap\"></a>\n\n```typescript\npublic readonly functionNameMap: {[ key: string ]: IFunction};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}\n\nLambda functions referenced in the definitions's.\n\n---\n\n##### `functionSlots`<sup>Optional</sup> <a name=\"functionSlots\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.functionSlots\"></a>\n\n```typescript\npublic readonly functionSlots: MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[];\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]\n\nOverrides for a given slot in the generated resolver pipelines.\n\nFor more information about what slots are available,\nrefer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#override-amplify-generated-resolvers.\n\n---\n\n##### `outputStorageStrategy`<sup>Optional</sup> <a name=\"outputStorageStrategy\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.outputStorageStrategy\"></a>\n\n```typescript\npublic readonly outputStorageStrategy: IBackendOutputStorageStrategy;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy\">IBackendOutputStorageStrategy</a>\n\nStrategy to store construct outputs.\n\nIf no outputStorageStrategey is provided a default strategy will be used.\n\n---\n\n##### `predictionsBucket`<sup>Optional</sup> <a name=\"predictionsBucket\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.predictionsBucket\"></a>\n\n```typescript\npublic readonly predictionsBucket: IBucket;\n```\n\n- *Type:* aws-cdk-lib.aws_s3.IBucket\n\nIf using predictions, a bucket must be provided which will be used to search for assets.\n\n---\n\n##### `stackMappings`<sup>Optional</sup> <a name=\"stackMappings\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.stackMappings\"></a>\n\n```typescript\npublic readonly stackMappings: {[ key: string ]: string};\n```\n\n- *Type:* {[ key: string ]: string}\n\nStackMappings override the assigned nested stack on a per-resource basis.\n\nOnly applies to resolvers, and takes the form\n{ <logicalId>: <stackName> }\nIt is not recommended to use this parameter unless you are encountering stack resource count limits, and worth noting that\nafter initial deployment AppSync resolvers cannot be moved between nested stacks, they will need to be removed from the app,\nthen re-added from a new stack.\n\n---\n\n##### `transformerPlugins`<sup>Optional</sup> <a name=\"transformerPlugins\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.transformerPlugins\"></a>\n\n```typescript\npublic readonly transformerPlugins: any[];\n```\n\n- *Type:* any[]\n\nProvide a list of additional custom transformers which are injected into the transform process.\n\nThese custom transformers must be implemented with aws-cdk-lib >=2.80.0, and\n\n---\n\n##### `translationBehavior`<sup>Optional</sup> <a name=\"translationBehavior\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.translationBehavior\"></a>\n\n```typescript\npublic readonly translationBehavior: PartialTranslationBehavior;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior\">PartialTranslationBehavior</a>\n\nThis replaces feature flags from the Api construct, for general information on what these parameters do, refer to https://docs.amplify.aws/cli/reference/feature-flags/#graphQLTransformer.\n\n---\n\n### AmplifyGraphqlApiResources <a name=\"AmplifyGraphqlApiResources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources\"></a>\n\nAccessible resources from the Api which were generated as part of the transform.\n\nThese are potentially stored under nested stacks, but presented organized by type instead.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlApiResources } from '@aws-amplify/graphql-api-construct'\n\nconst amplifyGraphqlApiResources: AmplifyGraphqlApiResources = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.cfnResources\">cfnResources</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources\">AmplifyGraphqlApiCfnResources</a></code> | L1 Cfn Resources, for when dipping down a level of abstraction is desirable. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.functions\">functions</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}</code> | The Generated Lambda Function L1 Resources, keyed by function name. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.graphqlApi\">graphqlApi</a></code> | <code>aws-cdk-lib.aws_appsync.IGraphqlApi</code> | The Generated AppSync Api L2 Resource, includes the Schema. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.nestedStacks\">nestedStacks</a></code> | <code>{[ key: string ]: aws-cdk-lib.NestedStack}</code> | Nested Stacks generated by the Api Construct. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.roles\">roles</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_iam.IRole}</code> | The Generated IAM Role L2 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.tables\">tables</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_dynamodb.ITable}</code> | The Generated DynamoDB Table L2 Resources, keyed by logicalId. |\n\n---\n\n##### `cfnResources`<sup>Required</sup> <a name=\"cfnResources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.cfnResources\"></a>\n\n```typescript\npublic readonly cfnResources: AmplifyGraphqlApiCfnResources;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources\">AmplifyGraphqlApiCfnResources</a>\n\nL1 Cfn Resources, for when dipping down a level of abstraction is desirable.\n\n---\n\n##### `functions`<sup>Required</sup> <a name=\"functions\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.functions\"></a>\n\n```typescript\npublic readonly functions: {[ key: string ]: IFunction};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}\n\nThe Generated Lambda Function L1 Resources, keyed by function name.\n\n---\n\n##### `graphqlApi`<sup>Required</sup> <a name=\"graphqlApi\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.graphqlApi\"></a>\n\n```typescript\npublic readonly graphqlApi: IGraphqlApi;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.IGraphqlApi\n\nThe Generated AppSync Api L2 Resource, includes the Schema.\n\n---\n\n##### `nestedStacks`<sup>Required</sup> <a name=\"nestedStacks\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.nestedStacks\"></a>\n\n```typescript\npublic readonly nestedStacks: {[ key: string ]: NestedStack};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.NestedStack}\n\nNested Stacks generated by the Api Construct.\n\n---\n\n##### `roles`<sup>Required</sup> <a name=\"roles\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.roles\"></a>\n\n```typescript\npublic readonly roles: {[ key: string ]: IRole};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_iam.IRole}\n\nThe Generated IAM Role L2 Resources, keyed by logicalId.\n\n---\n\n##### `tables`<sup>Required</sup> <a name=\"tables\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.tables\"></a>\n\n```typescript\npublic readonly tables: {[ key: string ]: ITable};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_dynamodb.ITable}\n\nThe Generated DynamoDB Table L2 Resources, keyed by logicalId.\n\n---\n\n### ApiKeyAuthorizationConfig <a name=\"ApiKeyAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig\"></a>\n\nConfiguration for Api Keys on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { ApiKeyAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst apiKeyAuthorizationConfig: ApiKeyAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.property.expires\">expires</a></code> | <code>aws-cdk-lib.Duration</code> | A duration representing the time from Cloudformation deploy until expiry. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.property.description\">description</a></code> | <code>string</code> | Optional description for the Api Key to attach to the Api. |\n\n---\n\n##### `expires`<sup>Required</sup> <a name=\"expires\" id=\"@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.property.expires\"></a>\n\n```typescript\npublic readonly expires: Duration;\n```\n\n- *Type:* aws-cdk-lib.Duration\n\nA duration representing the time from Cloudformation deploy until expiry.\n\n---\n\n##### `description`<sup>Optional</sup> <a name=\"description\" id=\"@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.property.description\"></a>\n\n```typescript\npublic readonly description: string;\n```\n\n- *Type:* string\n\nOptional description for the Api Key to attach to the Api.\n\n---\n\n### AuthorizationModes <a name=\"AuthorizationModes\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes\"></a>\n\nAuthorization Modes to apply to the Api.\n\nAt least one modes must be provided, and if more than one are provided a defaultAuthorizationMode must be specified.\nFor more information on Amplify Api auth, refer to https://docs.amplify.aws/cli/graphql/authorization-rules/#authorization-strategies\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.Initializer\"></a>\n\n```typescript\nimport { AuthorizationModes } from '@aws-amplify/graphql-api-construct'\n\nconst authorizationModes: AuthorizationModes = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.adminRoles\">adminRoles</a></code> | <code>aws-cdk-lib.aws_iam.IRole[]</code> | A list of roles granted full R/W access to the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.apiKeyConfig\">apiKeyConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig\">ApiKeyAuthorizationConfig</a></code> | AppSync Api Key config, required if a 'apiKey' auth provider is specified in the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.defaultAuthorizationMode\">defaultAuthorizationMode</a></code> | <code>string</code> | Default auth mode to provide to the Api, required if more than one config type is specified. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.iamConfig\">iamConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig\">IAMAuthorizationConfig</a></code> | IAM Auth config, required if an 'iam' auth provider is specified in the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.lambdaConfig\">lambdaConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig\">LambdaAuthorizationConfig</a></code> | Lambda config, required if a 'function' auth provider is specified in the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.oidcConfig\">oidcConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig\">OIDCAuthorizationConfig</a></code> | Cognito OIDC config, required if a 'oidc' auth provider is specified in the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.userPoolConfig\">userPoolConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig\">UserPoolAuthorizationConfig</a></code> | Cognito UserPool config, required if a 'userPools' auth provider is specified in the Api. |\n\n---\n\n##### `adminRoles`<sup>Optional</sup> <a name=\"adminRoles\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.adminRoles\"></a>\n\n```typescript\npublic readonly adminRoles: IRole[];\n```\n\n- *Type:* aws-cdk-lib.aws_iam.IRole[]\n\nA list of roles granted full R/W access to the Api.\n\n---\n\n##### `apiKeyConfig`<sup>Optional</sup> <a name=\"apiKeyConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.apiKeyConfig\"></a>\n\n```typescript\npublic readonly apiKeyConfig: ApiKeyAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig\">ApiKeyAuthorizationConfig</a>\n\nAppSync Api Key config, required if a 'apiKey' auth provider is specified in the Api.\n\nApplies to 'public' auth strategy.\n\n---\n\n##### `defaultAuthorizationMode`<sup>Optional</sup> <a name=\"defaultAuthorizationMode\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.defaultAuthorizationMode\"></a>\n\n```typescript\npublic readonly defaultAuthorizationMode: string;\n```\n\n- *Type:* string\n\nDefault auth mode to provide to the Api, required if more than one config type is specified.\n\n---\n\n##### `iamConfig`<sup>Optional</sup> <a name=\"iamConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.iamConfig\"></a>\n\n```typescript\npublic readonly iamConfig: IAMAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig\">IAMAuthorizationConfig</a>\n\nIAM Auth config, required if an 'iam' auth provider is specified in the Api.\n\nApplies to 'public' and 'private' auth strategies.\n\n---\n\n##### `lambdaConfig`<sup>Optional</sup> <a name=\"lambdaConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.lambdaConfig\"></a>\n\n```typescript\npublic readonly lambdaConfig: LambdaAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig\">LambdaAuthorizationConfig</a>\n\nLambda config, required if a 'function' auth provider is specified in the Api.\n\nApplies to 'custom' auth strategy.\n\n---\n\n##### `oidcConfig`<sup>Optional</sup> <a name=\"oidcConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.oidcConfig\"></a>\n\n```typescript\npublic readonly oidcConfig: OIDCAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig\">OIDCAuthorizationConfig</a>\n\nCognito OIDC config, required if a 'oidc' auth provider is specified in the Api.\n\nApplies to 'owner', 'private', and 'group' auth strategies.\n\n---\n\n##### `userPoolConfig`<sup>Optional</sup> <a name=\"userPoolConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.userPoolConfig\"></a>\n\n```typescript\npublic readonly userPoolConfig: UserPoolAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig\">UserPoolAuthorizationConfig</a>\n\nCognito UserPool config, required if a 'userPools' auth provider is specified in the Api.\n\nApplies to 'owner', 'private', and 'group' auth strategies.\n\n---\n\n### AutomergeConflictResolutionStrategy <a name=\"AutomergeConflictResolutionStrategy\" id=\"@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\"></a>\n\nEnable optimistic concurrency on the project.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.Initializer\"></a>\n\n```typescript\nimport { AutomergeConflictResolutionStrategy } from '@aws-amplify/graphql-api-construct'\n\nconst automergeConflictResolutionStrategy: AutomergeConflictResolutionStrategy = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.property.detectionType\">detectionType</a></code> | <code>string</code> | The conflict detection type used for resolution. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.property.handlerType\">handlerType</a></code> | <code>string</code> | This conflict resolution strategy executes an auto-merge. |\n\n---\n\n##### `detectionType`<sup>Required</sup> <a name=\"detectionType\" id=\"@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.property.detectionType\"></a>\n\n```typescript\npublic readonly detectionType: string;\n```\n\n- *Type:* string\n\nThe conflict detection type used for resolution.\n\n---\n\n##### `handlerType`<sup>Required</sup> <a name=\"handlerType\" id=\"@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.property.handlerType\"></a>\n\n```typescript\npublic readonly handlerType: string;\n```\n\n- *Type:* string\n\nThis conflict resolution strategy executes an auto-merge.\n\nFor more information, refer to https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html#conflict-detection-and-resolution\n\n---\n\n### ConflictResolution <a name=\"ConflictResolution\" id=\"@aws-amplify/graphql-api-construct.ConflictResolution\"></a>\n\nProject level configuration for conflict resolution.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.ConflictResolution.Initializer\"></a>\n\n```typescript\nimport { ConflictResolution } from '@aws-amplify/graphql-api-construct'\n\nconst conflictResolution: ConflictResolution = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ConflictResolution.property.models\">models</a></code> | <code>{[ key: string ]: <a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\">AutomergeConflictResolutionStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\">OptimisticConflictResolutionStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\">CustomConflictResolutionStrategy</a>}</code> | Model-specific conflict resolution overrides. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ConflictResolution.property.project\">project</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\">AutomergeConflictResolutionStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\">OptimisticConflictResolutionStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\">CustomConflictResolutionStrategy</a></code> | Project-wide config for conflict resolution. |\n\n---\n\n##### `models`<sup>Optional</sup> <a name=\"models\" id=\"@aws-amplify/graphql-api-construct.ConflictResolution.property.models\"></a>\n\n```typescript\npublic readonly models: {[ key: string ]: AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy};\n```\n\n- *Type:* {[ key: string ]: <a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\">AutomergeConflictResolutionStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\">OptimisticConflictResolutionStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\">CustomConflictResolutionStrategy</a>}\n\nModel-specific conflict resolution overrides.\n\n---\n\n##### `project`<sup>Optional</sup> <a name=\"project\" id=\"@aws-amplify/graphql-api-construct.ConflictResolution.property.project\"></a>\n\n```typescript\npublic readonly project: AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\">AutomergeConflictResolutionStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\">OptimisticConflictResolutionStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\">CustomConflictResolutionStrategy</a>\n\nProject-wide config for conflict resolution.\n\nApplies to all non-overridden models.\n\n---\n\n### ConflictResolutionStrategyBase <a name=\"ConflictResolutionStrategyBase\" id=\"@aws-amplify/graphql-api-construct.ConflictResolutionStrategyBase\"></a>\n\nCommon parameters for conflict resolution.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.ConflictResolutionStrategyBase.Initializer\"></a>\n\n```typescript\nimport { ConflictResolutionStrategyBase } from '@aws-amplify/graphql-api-construct'\n\nconst conflictResolutionStrategyBase: ConflictResolutionStrategyBase = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ConflictResolutionStrategyBase.property.detectionType\">detectionType</a></code> | <code>string</code> | The conflict detection type used for resolution. |\n\n---\n\n##### `detectionType`<sup>Required</sup> <a name=\"detectionType\" id=\"@aws-amplify/graphql-api-construct.ConflictResolutionStrategyBase.property.detectionType\"></a>\n\n```typescript\npublic readonly detectionType: string;\n```\n\n- *Type:* string\n\nThe conflict detection type used for resolution.\n\n---\n\n### CustomConflictResolutionStrategy <a name=\"CustomConflictResolutionStrategy\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\"></a>\n\nEnable custom sync on the project, powered by a lambda.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.Initializer\"></a>\n\n```typescript\nimport { CustomConflictResolutionStrategy } from '@aws-amplify/graphql-api-construct'\n\nconst customConflictResolutionStrategy: CustomConflictResolutionStrategy = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.detectionType\">detectionType</a></code> | <code>string</code> | The conflict detection type used for resolution. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.conflictHandler\">conflictHandler</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | The function which will be invoked for conflict resolution. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.handlerType\">handlerType</a></code> | <code>string</code> | This conflict resolution strategy uses a lambda handler type. |\n\n---\n\n##### `detectionType`<sup>Required</sup> <a name=\"detectionType\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.detectionType\"></a>\n\n```typescript\npublic readonly detectionType: string;\n```\n\n- *Type:* string\n\nThe conflict detection type used for resolution.\n\n---\n\n##### `conflictHandler`<sup>Required</sup> <a name=\"conflictHandler\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.conflictHandler\"></a>\n\n```typescript\npublic readonly conflictHandler: IFunction;\n```\n\n- *Type:* aws-cdk-lib.aws_lambda.IFunction\n\nThe function which will be invoked for conflict resolution.\n\n---\n\n##### `handlerType`<sup>Required</sup> <a name=\"handlerType\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.handlerType\"></a>\n\n```typescript\npublic readonly handlerType: string;\n```\n\n- *Type:* string\n\nThis conflict resolution strategy uses a lambda handler type.\n\nFor more information, refer to https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html#conflict-detection-and-resolution\n\n---\n\n### FunctionSlotBase <a name=\"FunctionSlotBase\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase\"></a>\n\nCommon slot parameters.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase.Initializer\"></a>\n\n```typescript\nimport { FunctionSlotBase } from '@aws-amplify/graphql-api-construct'\n\nconst functionSlotBase: FunctionSlotBase = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotBase.property.fieldName\">fieldName</a></code> | <code>string</code> | The field to attach this function to on the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotBase.property.function\">function</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a></code> | The overridden behavior for this slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotBase.property.slotIndex\">slotIndex</a></code> | <code>number</code> | The slot index to use to inject this into the execution pipeline. |\n\n---\n\n##### `fieldName`<sup>Required</sup> <a name=\"fieldName\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase.property.fieldName\"></a>\n\n```typescript\npublic readonly fieldName: string;\n```\n\n- *Type:* string\n\nThe field to attach this function to on the Api definition.\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase.property.function\"></a>\n\n```typescript\npublic readonly function: FunctionSlotOverride;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a>\n\nThe overridden behavior for this slot.\n\n---\n\n##### `slotIndex`<sup>Required</sup> <a name=\"slotIndex\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase.property.slotIndex\"></a>\n\n```typescript\npublic readonly slotIndex: number;\n```\n\n- *Type:* number\n\nThe slot index to use to inject this into the execution pipeline.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n### FunctionSlotOverride <a name=\"FunctionSlotOverride\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotOverride\"></a>\n\nParams exposed to support configuring and overriding pipelined slots.\n\nThis allows configuration of the underlying function,\nincluding the request and response mapping templates.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotOverride.Initializer\"></a>\n\n```typescript\nimport { FunctionSlotOverride } from '@aws-amplify/graphql-api-construct'\n\nconst functionSlotOverride: FunctionSlotOverride = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride.property.requestMappingTemplate\">requestMappingTemplate</a></code> | <code>aws-cdk-lib.aws_appsync.MappingTemplate</code> | Override request mapping template for the function slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride.property.responseMappingTemplate\">responseMappingTemplate</a></code> | <code>aws-cdk-lib.aws_appsync.MappingTemplate</code> | Override response mapping template for the function slot. |\n\n---\n\n##### `requestMappingTemplate`<sup>Optional</sup> <a name=\"requestMappingTemplate\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotOverride.property.requestMappingTemplate\"></a>\n\n```typescript\npublic readonly requestMappingTemplate: MappingTemplate;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.MappingTemplate\n\nOverride request mapping template for the function slot.\n\nExecuted before the datasource is invoked.\n\n---\n\n##### `responseMappingTemplate`<sup>Optional</sup> <a name=\"responseMappingTemplate\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotOverride.property.responseMappingTemplate\"></a>\n\n```typescript\npublic readonly responseMappingTemplate: MappingTemplate;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.MappingTemplate\n\nOverride response mapping template for the function slot.\n\nExecuted after the datasource is invoked.\n\n---\n\n### IAMAuthorizationConfig <a name=\"IAMAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig\"></a>\n\nConfiguration for IAM Authorization on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { IAMAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst iAMAuthorizationConfig: IAMAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.authenticatedUserRole\">authenticatedUserRole</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | Authenticated user role, applies to { provider: iam, allow: private } access. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.identityPoolId\">identityPoolId</a></code> | <code>string</code> | ID for the Cognito Identity Pool vending auth and unauth roles. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.unauthenticatedUserRole\">unauthenticatedUserRole</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | Unauthenticated user role, applies to { provider: iam, allow: public } access. |\n\n---\n\n##### `authenticatedUserRole`<sup>Required</sup> <a name=\"authenticatedUserRole\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.authenticatedUserRole\"></a>\n\n```typescript\npublic readonly authenticatedUserRole: IRole;\n```\n\n- *Type:* aws-cdk-lib.aws_iam.IRole\n\nAuthenticated user role, applies to { provider: iam, allow: private } access.\n\n---\n\n##### `identityPoolId`<sup>Required</sup> <a name=\"identityPoolId\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.identityPoolId\"></a>\n\n```typescript\npublic readonly identityPoolId: string;\n```\n\n- *Type:* string\n\nID for the Cognito Identity Pool vending auth and unauth roles.\n\n---\n\n##### `unauthenticatedUserRole`<sup>Required</sup> <a name=\"unauthenticatedUserRole\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.unauthenticatedUserRole\"></a>\n\n```typescript\npublic readonly unauthenticatedUserRole: IRole;\n```\n\n- *Type:* aws-cdk-lib.aws_iam.IRole\n\nUnauthenticated user role, applies to { provider: iam, allow: public } access.\n\n---\n\n### LambdaAuthorizationConfig <a name=\"LambdaAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig\"></a>\n\nConfiguration for Custom Lambda authorization on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { LambdaAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst lambdaAuthorizationConfig: LambdaAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.property.function\">function</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | The authorizer lambda function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.property.ttl\">ttl</a></code> | <code>aws-cdk-lib.Duration</code> | How long the results are cached. |\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.property.function\"></a>\n\n```typescript\npublic readonly function: IFunction;\n```\n\n- *Type:* aws-cdk-lib.aws_lambda.IFunction\n\nThe authorizer lambda function.\n\n---\n\n##### `ttl`<sup>Required</sup> <a name=\"ttl\" id=\"@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.property.ttl\"></a>\n\n```typescript\npublic readonly ttl: Duration;\n```\n\n- *Type:* aws-cdk-lib.Duration\n\nHow long the results are cached.\n\n---\n\n### MutationFunctionSlot <a name=\"MutationFunctionSlot\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot\"></a>\n\nSlot types for Mutation Resolvers.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.Initializer\"></a>\n\n```typescript\nimport { MutationFunctionSlot } from '@aws-amplify/graphql-api-construct'\n\nconst mutationFunctionSlot: MutationFunctionSlot = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.fieldName\">fieldName</a></code> | <code>string</code> | The field to attach this function to on the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.function\">function</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a></code> | The overridden behavior for this slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.slotIndex\">slotIndex</a></code> | <code>number</code> | The slot index to use to inject this into the execution pipeline. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.slotName\">slotName</a></code> | <code>string</code> | The slot name to inject this behavior into. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.typeName\">typeName</a></code> | <code>string</code> | This slot type applies to the Mutation type on the Api definition. |\n\n---\n\n##### `fieldName`<sup>Required</sup> <a name=\"fieldName\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.fieldName\"></a>\n\n```typescript\npublic readonly fieldName: string;\n```\n\n- *Type:* string\n\nThe field to attach this function to on the Api definition.\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.function\"></a>\n\n```typescript\npublic readonly function: FunctionSlotOverride;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a>\n\nThe overridden behavior for this slot.\n\n---\n\n##### `slotIndex`<sup>Required</sup> <a name=\"slotIndex\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.slotIndex\"></a>\n\n```typescript\npublic readonly slotIndex: number;\n```\n\n- *Type:* number\n\nThe slot index to use to inject this into the execution pipeline.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `slotName`<sup>Required</sup> <a name=\"slotName\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.slotName\"></a>\n\n```typescript\npublic readonly slotName: string;\n```\n\n- *Type:* string\n\nThe slot name to inject this behavior into.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `typeName`<sup>Required</sup> <a name=\"typeName\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.typeName\"></a>\n\n```typescript\npublic readonly typeName: string;\n```\n\n- *Type:* string\n\nThis slot type applies to the Mutation type on the Api definition.\n\n---\n\n### OIDCAuthorizationConfig <a name=\"OIDCAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig\"></a>\n\nConfiguration for OpenId Connect Authorization on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { OIDCAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst oIDCAuthorizationConfig: OIDCAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.oidcIssuerUrl\">oidcIssuerUrl</a></code> | <code>string</code> | Url for the OIDC token issuer. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.oidcProviderName\">oidcProviderName</a></code> | <code>string</code> | The issuer for the OIDC configuration. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.tokenExpiryFromAuth\">tokenExpiryFromAuth</a></code> | <code>aws-cdk-lib.Duration</code> | The duration an OIDC token is valid after being authenticated by OIDC provider. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.tokenExpiryFromIssue\">tokenExpiryFromIssue</a></code> | <code>aws-cdk-lib.Duration</code> | The duration an OIDC token is valid after being issued to a user. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.clientId\">clientId</a></code> | <code>string</code> | The client identifier of the Relying party at the OpenID identity provider. |\n\n---\n\n##### `oidcIssuerUrl`<sup>Required</sup> <a name=\"oidcIssuerUrl\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.oidcIssuerUrl\"></a>\n\n```typescript\npublic readonly oidcIssuerUrl: string;\n```\n\n- *Type:* string\n\nUrl for the OIDC token issuer.\n\n---\n\n##### `oidcProviderName`<sup>Required</sup> <a name=\"oidcProviderName\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.oidcProviderName\"></a>\n\n```typescript\npublic readonly oidcProviderName: string;\n```\n\n- *Type:* string\n\nThe issuer for the OIDC configuration.\n\n---\n\n##### `tokenExpiryFromAuth`<sup>Required</sup> <a name=\"tokenExpiryFromAuth\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.tokenExpiryFromAuth\"></a>\n\n```typescript\npublic readonly tokenExpiryFromAuth: Duration;\n```\n\n- *Type:* aws-cdk-lib.Duration\n\nThe duration an OIDC token is valid after being authenticated by OIDC provider.\n\nauth_time claim in OIDC token is required for this validation to work.\n\n---\n\n##### `tokenExpiryFromIssue`<sup>Required</sup> <a name=\"tokenExpiryFromIssue\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.tokenExpiryFromIssue\"></a>\n\n```typescript\npublic readonly tokenExpiryFromIssue: Duration;\n```\n\n- *Type:* aws-cdk-lib.Duration\n\nThe duration an OIDC token is valid after being issued to a user.\n\nThis validation uses iat claim of OIDC token.\n\n---\n\n##### `clientId`<sup>Optional</sup> <a name=\"clientId\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.clientId\"></a>\n\n```typescript\npublic readonly clientId: string;\n```\n\n- *Type:* string\n\nThe client identifier of the Relying party at the OpenID identity provider.\n\nA regular expression can be specified so AppSync can validate against multiple client identifiers at a time. Example\n\n---\n\n### OptimisticConflictResolutionStrategy <a name=\"OptimisticConflictResolutionStrategy\" id=\"@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\"></a>\n\nEnable automerge on the project.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.Initializer\"></a>\n\n```typescript\nimport { OptimisticConflictResolutionStrategy } from '@aws-amplify/graphql-api-construct'\n\nconst optimisticConflictResolutionStrategy: OptimisticConflictResolutionStrategy = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.property.detectionType\">detectionType</a></code> | <code>string</code> | The conflict detection type used for resolution. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.property.handlerType\">handlerType</a></code> | <code>string</code> | This conflict resolution strategy the _version to perform optimistic concurrency. |\n\n---\n\n##### `detectionType`<sup>Required</sup> <a name=\"detectionType\" id=\"@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.property.detectionType\"></a>\n\n```typescript\npublic readonly detectionType: string;\n```\n\n- *Type:* string\n\nThe conflict detection type used for resolution.\n\n---\n\n##### `handlerType`<sup>Required</sup> <a name=\"handlerType\" id=\"@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.property.handlerType\"></a>\n\n```typescript\npublic readonly handlerType: string;\n```\n\n- *Type:* string\n\nThis conflict resolution strategy the _version to perform optimistic concurrency.\n\nFor more information, refer to https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html#conflict-detection-and-resolution\n\n---\n\n### PartialTranslationBehavior <a name=\"PartialTranslationBehavior\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior\"></a>\n\nA utility interface equivalent to Partial<TranslationBehavior>.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.Initializer\"></a>\n\n```typescript\nimport { PartialTranslationBehavior } from '@aws-amplify/graphql-api-construct'\n\nconst partialTranslationBehavior: PartialTranslationBehavior = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.disableResolverDeduping\">disableResolverDeduping</a></code> | <code>boolean</code> | Disable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableAutoIndexQueryNames\">enableAutoIndexQueryNames</a></code> | <code>boolean</code> | Automate generation of query names, and as a result attaching all indexes as queries to the generated Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableSearchNodeToNodeEncryption\">enableSearchNodeToNodeEncryption</a></code> | <code>boolean</code> | If enabled, set nodeToNodeEncryption on the searchable domain (if one exists). |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableTransformerCfnOutputs\">enableTransformerCfnOutputs</a></code> | <code>boolean</code> | When enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.populateOwnerFieldForStaticGroupAuth\">populateOwnerFieldForStaticGroupAuth</a></code> | <code>boolean</code> | Ensure that the owner field is still populated even if a static iam or group authorization applies. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.respectPrimaryKeyAttributesOnConnectionField\">respectPrimaryKeyAttributesOnConnectionField</a></code> | <code>boolean</code> | Enable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.sandboxModeEnabled\">sandboxModeEnabled</a></code> | <code>boolean</code> | Enabling sandbox mode will enable api key auth on all models in the transformed schema. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.secondaryKeyAsGSI\">secondaryKeyAsGSI</a></code> | <code>boolean</code> | If disabled, generated. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.shouldDeepMergeDirectiveConfigDefaults\">shouldDeepMergeDirectiveConfigDefaults</a></code> | <code>boolean</code> | Restore parity w/ GQLv1. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.suppressApiKeyGeneration\">suppressApiKeyGeneration</a></code> | <code>boolean</code> | If enabled, disable api key resource generation even if specified as an auth rule on the construct. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.useSubUsernameForDefaultIdentityClaim\">useSubUsernameForDefaultIdentityClaim</a></code> | <code>boolean</code> | Ensure that oidc and userPool auth use the `sub` field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool. |\n\n---\n\n##### `disableResolverDeduping`<sup>Optional</sup> <a name=\"disableResolverDeduping\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.disableResolverDeduping\"></a>\n\n```typescript\npublic readonly disableResolverDeduping: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nDisable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered.\n\n---\n\n##### `enableAutoIndexQueryNames`<sup>Optional</sup> <a name=\"enableAutoIndexQueryNames\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableAutoIndexQueryNames\"></a>\n\n```typescript\npublic readonly enableAutoIndexQueryNames: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nAutomate generation of query names, and as a result attaching all indexes as queries to the generated Api.\n\nIf enabled,\n\n---\n\n##### `enableSearchNodeToNodeEncryption`<sup>Optional</sup> <a name=\"enableSearchNodeToNodeEncryption\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableSearchNodeToNodeEncryption\"></a>\n\n```typescript\npublic readonly enableSearchNodeToNodeEncryption: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nIf enabled, set nodeToNodeEncryption on the searchable domain (if one exists).\n\nNot recommended for use, prefer\nto use `Object.values(resources.additionalResources['AWS::Elasticsearch::Domain']).forEach((domain: CfnDomain) => {\n domain.NodeToNodeEncryptionOptions = { Enabled: True };\n});\n\n---\n\n##### `enableTransformerCfnOutputs`<sup>Optional</sup> <a name=\"enableTransformerCfnOutputs\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableTransformerCfnOutputs\"></a>\n\n```typescript\npublic readonly enableTransformerCfnOutputs: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nWhen enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted.\n\n---\n\n##### `populateOwnerFieldForStaticGroupAuth`<sup>Optional</sup> <a name=\"populateOwnerFieldForStaticGroupAuth\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.populateOwnerFieldForStaticGroupAuth\"></a>\n\n```typescript\npublic readonly populateOwnerFieldForStaticGroupAuth: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnsure that the owner field is still populated even if a static iam or group authorization applies.\n\n---\n\n##### `respectPrimaryKeyAttributesOnConnectionField`<sup>Optional</sup> <a name=\"respectPrimaryKeyAttributesOnConnectionField\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.respectPrimaryKeyAttributesOnConnectionField\"></a>\n\n```typescript\npublic readonly respectPrimaryKeyAttributesOnConnectionField: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app.\n\n---\n\n##### `sandboxModeEnabled`<sup>Optional</sup> <a name=\"sandboxModeEnabled\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.sandboxModeEnabled\"></a>\n\n```typescript\npublic readonly sandboxModeEnabled: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nEnabling sandbox mode will enable api key auth on all models in the transformed schema.\n\n---\n\n##### `secondaryKeyAsGSI`<sup>Optional</sup> <a name=\"secondaryKeyAsGSI\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.secondaryKeyAsGSI\"></a>\n\n```typescript\npublic readonly secondaryKeyAsGSI: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nIf disabled, generated.\n\n---\n\n##### `shouldDeepMergeDirectiveConfigDefaults`<sup>Optional</sup> <a name=\"shouldDeepMergeDirectiveConfigDefaults\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.shouldDeepMergeDirectiveConfigDefaults\"></a>\n\n```typescript\npublic readonly shouldDeepMergeDirectiveConfigDefaults: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nRestore parity w/ GQLv1.\n\n---\n\n##### `suppressApiKeyGeneration`<sup>Optional</sup> <a name=\"suppressApiKeyGeneration\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.suppressApiKeyGeneration\"></a>\n\n```typescript\npublic readonly suppressApiKeyGeneration: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nIf enabled, disable api key resource generation even if specified as an auth rule on the construct.\n\nThis is a legacy parameter from the Graphql Transformer existing in Amplify CLI, not recommended to change.\n\n---\n\n##### `useSubUsernameForDefaultIdentityClaim`<sup>Optional</sup> <a name=\"useSubUsernameForDefaultIdentityClaim\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.useSubUsernameForDefaultIdentityClaim\"></a>\n\n```typescript\npublic readonly useSubUsernameForDefaultIdentityClaim: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnsure that oidc and userPool auth use the `sub` field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool.\n\n---\n\n### QueryFunctionSlot <a name=\"QueryFunctionSlot\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot\"></a>\n\nSlot types for Query Resolvers.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.Initializer\"></a>\n\n```typescript\nimport { QueryFunctionSlot } from '@aws-amplify/graphql-api-construct'\n\nconst queryFunctionSlot: QueryFunctionSlot = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.fieldName\">fieldName</a></code> | <code>string</code> | The field to attach this function to on the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.function\">function</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a></code> | The overridden behavior for this slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.slotIndex\">slotIndex</a></code> | <code>number</code> | The slot index to use to inject this into the execution pipeline. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.slotName\">slotName</a></code> | <code>string</code> | The slot name to inject this behavior into. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.typeName\">typeName</a></code> | <code>string</code> | This slot type applies to the Query type on the Api definition. |\n\n---\n\n##### `fieldName`<sup>Required</sup> <a name=\"fieldName\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.fieldName\"></a>\n\n```typescript\npublic readonly fieldName: string;\n```\n\n- *Type:* string\n\nThe field to attach this function to on the Api definition.\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.function\"></a>\n\n```typescript\npublic readonly function: FunctionSlotOverride;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a>\n\nThe overridden behavior for this slot.\n\n---\n\n##### `slotIndex`<sup>Required</sup> <a name=\"slotIndex\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.slotIndex\"></a>\n\n```typescript\npublic readonly slotIndex: number;\n```\n\n- *Type:* number\n\nThe slot index to use to inject this into the execution pipeline.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `slotName`<sup>Required</sup> <a name=\"slotName\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.slotName\"></a>\n\n```typescript\npublic readonly slotName: string;\n```\n\n- *Type:* string\n\nThe slot name to inject this behavior into.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `typeName`<sup>Required</sup> <a name=\"typeName\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.typeName\"></a>\n\n```typescript\npublic readonly typeName: string;\n```\n\n- *Type:* string\n\nThis slot type applies to the Query type on the Api definition.\n\n---\n\n### SubscriptionFunctionSlot <a name=\"SubscriptionFunctionSlot\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\"></a>\n\nSlot types for Subscription Resolvers.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.Initializer\"></a>\n\n```typescript\nimport { SubscriptionFunctionSlot } from '@aws-amplify/graphql-api-construct'\n\nconst subscriptionFunctionSlot: SubscriptionFunctionSlot = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.fieldName\">fieldName</a></code> | <code>string</code> | The field to attach this function to on the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.function\">function</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a></code> | The overridden behavior for this slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.slotIndex\">slotIndex</a></code> | <code>number</code> | The slot index to use to inject this into the execution pipeline. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.slotName\">slotName</a></code> | <code>string</code> | The slot name to inject this behavior into. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.typeName\">typeName</a></code> | <code>string</code> | This slot type applies to the Subscription type on the Api definition. |\n\n---\n\n##### `fieldName`<sup>Required</sup> <a name=\"fieldName\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.fieldName\"></a>\n\n```typescript\npublic readonly fieldName: string;\n```\n\n- *Type:* string\n\nThe field to attach this function to on the Api definition.\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.function\"></a>\n\n```typescript\npublic readonly function: FunctionSlotOverride;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a>\n\nThe overridden behavior for this slot.\n\n---\n\n##### `slotIndex`<sup>Required</sup> <a name=\"slotIndex\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.slotIndex\"></a>\n\n```typescript\npublic readonly slotIndex: number;\n```\n\n- *Type:* number\n\nThe slot index to use to inject this into the execution pipeline.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `slotName`<sup>Required</sup> <a name=\"slotName\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.slotName\"></a>\n\n```typescript\npublic readonly slotName: string;\n```\n\n- *Type:* string\n\nThe slot name to inject this behavior into.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `typeName`<sup>Required</sup> <a name=\"typeName\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.typeName\"></a>\n\n```typescript\npublic readonly typeName: string;\n```\n\n- *Type:* string\n\nThis slot type applies to the Subscription type on the Api definition.\n\n---\n\n### TranslationBehavior <a name=\"TranslationBehavior\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior\"></a>\n\nStrongly typed set of shared parameters for all transformers, and core layer.\n\nThis is intended to replace feature flags, to ensure param coercion happens in\na single location, and isn't spread around the transformers, where they can\nhave different default behaviors.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.Initializer\"></a>\n\n```typescript\nimport { TranslationBehavior } from '@aws-amplify/graphql-api-construct'\n\nconst translationBehavior: TranslationBehavior = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.disableResolverDeduping\">disableResolverDeduping</a></code> | <code>boolean</code> | Disable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableAutoIndexQueryNames\">enableAutoIndexQueryNames</a></code> | <code>boolean</code> | Automate generation of query names, and as a result attaching all indexes as queries to the generated Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableSearchNodeToNodeEncryption\">enableSearchNodeToNodeEncryption</a></code> | <code>boolean</code> | If enabled, set nodeToNodeEncryption on the searchable domain (if one exists). |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableTransformerCfnOutputs\">enableTransformerCfnOutputs</a></code> | <code>boolean</code> | When enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.populateOwnerFieldForStaticGroupAuth\">populateOwnerFieldForStaticGroupAuth</a></code> | <code>boolean</code> | Ensure that the owner field is still populated even if a static iam or group authorization applies. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.respectPrimaryKeyAttributesOnConnectionField\">respectPrimaryKeyAttributesOnConnectionField</a></code> | <code>boolean</code> | Enable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.sandboxModeEnabled\">sandboxModeEnabled</a></code> | <code>boolean</code> | Enabling sandbox mode will enable api key auth on all models in the transformed schema. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.secondaryKeyAsGSI\">secondaryKeyAsGSI</a></code> | <code>boolean</code> | If disabled, generated. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.shouldDeepMergeDirectiveConfigDefaults\">shouldDeepMergeDirectiveConfigDefaults</a></code> | <code>boolean</code> | Restore parity w/ GQLv1. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.suppressApiKeyGeneration\">suppressApiKeyGeneration</a></code> | <code>boolean</code> | If enabled, disable api key resource generation even if specified as an auth rule on the construct. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.useSubUsernameForDefaultIdentityClaim\">useSubUsernameForDefaultIdentityClaim</a></code> | <code>boolean</code> | Ensure that oidc and userPool auth use the `sub` field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool. |\n\n---\n\n##### `disableResolverDeduping`<sup>Required</sup> <a name=\"disableResolverDeduping\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.disableResolverDeduping\"></a>\n\n```typescript\npublic readonly disableResolverDeduping: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nDisable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered.\n\n---\n\n##### `enableAutoIndexQueryNames`<sup>Required</sup> <a name=\"enableAutoIndexQueryNames\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableAutoIndexQueryNames\"></a>\n\n```typescript\npublic readonly enableAutoIndexQueryNames: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nAutomate generation of query names, and as a result attaching all indexes as queries to the generated Api.\n\nIf enabled,\n\n---\n\n##### `enableSearchNodeToNodeEncryption`<sup>Required</sup> <a name=\"enableSearchNodeToNodeEncryption\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableSearchNodeToNodeEncryption\"></a>\n\n```typescript\npublic readonly enableSearchNodeToNodeEncryption: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nIf enabled, set nodeToNodeEncryption on the searchable domain (if one exists).\n\nNot recommended for use, prefer\nto use `Object.values(resources.additionalResources['AWS::Elasticsearch::Domain']).forEach((domain: CfnDomain) => {\n domain.NodeToNodeEncryptionOptions = { Enabled: True };\n});\n\n---\n\n##### `enableTransformerCfnOutputs`<sup>Required</sup> <a name=\"enableTransformerCfnOutputs\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableTransformerCfnOutputs\"></a>\n\n```typescript\npublic readonly enableTransformerCfnOutputs: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nWhen enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted.\n\n---\n\n##### `populateOwnerFieldForStaticGroupAuth`<sup>Required</sup> <a name=\"populateOwnerFieldForStaticGroupAuth\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.populateOwnerFieldForStaticGroupAuth\"></a>\n\n```typescript\npublic readonly populateOwnerFieldForStaticGroupAuth: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnsure that the owner field is still populated even if a static iam or group authorization applies.\n\n---\n\n##### `respectPrimaryKeyAttributesOnConnectionField`<sup>Required</sup> <a name=\"respectPrimaryKeyAttributesOnConnectionField\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.respectPrimaryKeyAttributesOnConnectionField\"></a>\n\n```typescript\npublic readonly respectPrimaryKeyAttributesOnConnectionField: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app.\n\n---\n\n##### `sandboxModeEnabled`<sup>Required</sup> <a name=\"sandboxModeEnabled\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.sandboxModeEnabled\"></a>\n\n```typescript\npublic readonly sandboxModeEnabled: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nEnabling sandbox mode will enable api key auth on all models in the transformed schema.\n\n---\n\n##### `secondaryKeyAsGSI`<sup>Required</sup> <a name=\"secondaryKeyAsGSI\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.secondaryKeyAsGSI\"></a>\n\n```typescript\npublic readonly secondaryKeyAsGSI: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nIf disabled, generated.\n\n---\n\n##### `shouldDeepMergeDirectiveConfigDefaults`<sup>Required</sup> <a name=\"shouldDeepMergeDirectiveConfigDefaults\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.shouldDeepMergeDirectiveConfigDefaults\"></a>\n\n```typescript\npublic readonly shouldDeepMergeDirectiveConfigDefaults: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nRestore parity w/ GQLv1.\n\n---\n\n##### `suppressApiKeyGeneration`<sup>Required</sup> <a name=\"suppressApiKeyGeneration\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.suppressApiKeyGeneration\"></a>\n\n```typescript\npublic readonly suppressApiKeyGeneration: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nIf enabled, disable api key resource generation even if specified as an auth rule on the construct.\n\nThis is a legacy parameter from the Graphql Transformer existing in Amplify CLI, not recommended to change.\n\n---\n\n##### `useSubUsernameForDefaultIdentityClaim`<sup>Required</sup> <a name=\"useSubUsernameForDefaultIdentityClaim\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.useSubUsernameForDefaultIdentityClaim\"></a>\n\n```typescript\npublic readonly useSubUsernameForDefaultIdentityClaim: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnsure that oidc and userPool auth use the `sub` field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool.\n\n---\n\n### UserPoolAuthorizationConfig <a name=\"UserPoolAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig\"></a>\n\nConfiguration for Cognito UserPool Authorization on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { UserPoolAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst userPoolAuthorizationConfig: UserPoolAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig.property.userPool\">userPool</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPool</code> | The Cognito User Pool which is used to authenticated JWT tokens, and vends group and user information. |\n\n---\n\n##### `userPool`<sup>Required</sup> <a name=\"userPool\" id=\"@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig.property.userPool\"></a>\n\n```typescript\npublic readonly userPool: IUserPool;\n```\n\n- *Type:* aws-cdk-lib.aws_cognito.IUserPool\n\nThe Cognito User Pool which is used to authenticated JWT tokens, and vends group and user information.\n\n---\n\n## Classes <a name=\"Classes\" id=\"Classes\"></a>\n\n### AmplifyGraphqlDefinition <a name=\"AmplifyGraphqlDefinition\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition\"></a>\n\nClass exposing utilities to produce IAmplifyGraphqlDefinition objects given various inputs.\n\n#### Initializers <a name=\"Initializers\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'\n\nnew AmplifyGraphqlDefinition()\n```\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n\n---\n\n\n#### Static Functions <a name=\"Static Functions\" id=\"Static Functions\"></a>\n\n| **Name** | **Description** |\n| --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFiles\">fromFiles</a></code> | Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromString\">fromString</a></code> | Produce a schema definition from a string input. |\n\n---\n\n##### `fromFiles` <a name=\"fromFiles\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFiles\"></a>\n\n```typescript\nimport { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'\n\nAmplifyGraphqlDefinition.fromFiles(filePaths: string)\n```\n\nConvert one or more appsync SchemaFile objects into an Amplify Graphql Schema.\n\n###### `filePaths`<sup>Required</sup> <a name=\"filePaths\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFiles.parameter.filePaths\"></a>\n\n- *Type:* string\n\none or more paths to the graphql files to process.\n\n---\n\n##### `fromString` <a name=\"fromString\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromString\"></a>\n\n```typescript\nimport { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'\n\nAmplifyGraphqlDefinition.fromString(schema: string)\n```\n\nProduce a schema definition from a string input.\n\n###### `schema`<sup>Required</sup> <a name=\"schema\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromString.parameter.schema\"></a>\n\n- *Type:* string\n\nthe graphql input as a string.\n\n---\n\n\n\n## Protocols <a name=\"Protocols\" id=\"Protocols\"></a>\n\n### IAmplifyGraphqlDefinition <a name=\"IAmplifyGraphqlDefinition\" id=\"@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition\"></a>\n\n- *Implemented By:* <a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition\">IAmplifyGraphqlDefinition</a>\n\nGraphql Api definition, which can be implemented in multiple ways.\n\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.functionSlots\">functionSlots</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]</code> | Retrieve any function slots defined explicitly in the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.schema\">schema</a></code> | <code>string</code> | Return the schema definition as a graphql string, with amplify directives allowed. |\n\n---\n\n##### `functionSlots`<sup>Required</sup> <a name=\"functionSlots\" id=\"@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.functionSlots\"></a>\n\n```typescript\npublic readonly functionSlots: MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[];\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]\n\nRetrieve any function slots defined explicitly in the Api definition.\n\n---\n\n##### `schema`<sup>Required</sup> <a name=\"schema\" id=\"@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.schema\"></a>\n\n```typescript\npublic readonly schema: string;\n```\n\n- *Type:* string\n\nReturn the schema definition as a graphql string, with amplify directives allowed.\n\n---\n\n### IBackendOutputEntry <a name=\"IBackendOutputEntry\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputEntry\"></a>\n\n- *Implemented By:* <a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputEntry\">IBackendOutputEntry</a>\n\nEntry representing the required output from the backend for codegen generate commands to work.\n\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputEntry.property.payload\">payload</a></code> | <code>{[ key: string ]: string}</code> | The string-map payload of generated config values. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputEntry.property.version\">version</a></code> | <code>string</code> | The protocol version for this backend output. |\n\n---\n\n##### `payload`<sup>Required</sup> <a name=\"payload\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputEntry.property.payload\"></a>\n\n```typescript\npublic readonly payload: {[ key: string ]: string};\n```\n\n- *Type:* {[ key: string ]: string}\n\nThe string-map payload of generated config values.\n\n---\n\n##### `version`<sup>Required</sup> <a name=\"version\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputEntry.property.version\"></a>\n\n```typescript\npublic readonly version: string;\n```\n\n- *Type:* string\n\nThe protocol version for this backend output.\n\n---\n\n### IBackendOutputStorageStrategy <a name=\"IBackendOutputStorageStrategy\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy\"></a>\n\n- *Implemented By:* <a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy\">IBackendOutputStorageStrategy</a>\n\nBackend output strategy used to write config required for codegen tasks.\n\n#### Methods <a name=\"Methods\" id=\"Methods\"></a>\n\n| **Name** | **Description** |\n| --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy.addBackendOutputEntry\">addBackendOutputEntry</a></code> | Add an entry to backend output. |\n\n---\n\n##### `addBackendOutputEntry` <a name=\"addBackendOutputEntry\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy.addBackendOutputEntry\"></a>\n\n```typescript\npublic addBackendOutputEntry(keyName: string, backendOutputEntry: IBackendOutputEntry): void\n```\n\nAdd an entry to backend output.\n\n###### `keyName`<sup>Required</sup> <a name=\"keyName\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy.addBackendOutputEntry.parameter.keyName\"></a>\n\n- *Type:* string\n\nthe key.\n\n---\n\n###### `backendOutputEntry`<sup>Required</sup> <a name=\"backendOutputEntry\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy.addBackendOutputEntry.parameter.backendOutputEntry\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputEntry\">IBackendOutputEntry</a>\n\nthe record to store in the backend output.\n\n---\n\n\n"
3511
+ "markdown": "# Amplify Graphql API Construct\n\n[![View on Construct Hub](https://constructs.dev/badge?package=%40aws-amplify%2Fgraphql-construct-alpha)](https://constructs.dev/packages/@aws-amplify/graphql-api-construct)\n\nThis package vends an L3 CDK Construct wrapping the behavior of the Amplify GraphQL Transformer. This enables quick development and interation of AppSync APIs which support the Amplify GraphQL Directives. For more information on schema modeling in GraphQL, please refer to the [amplify developer docs](https://docs.amplify.aws/cli/graphql/overview/).\n\nThe primary way to use this construct is to invoke it with a provided schema (either as an inline graphql string, or as one or more `appsync.SchemaFile`) objects, and with authorization config provided. There are 5 supported methods for authorization of an AppSync API, all of which are supported by this construct. For more information on authorization rule definitions in Amplify, refer to the [authorization docs](https://docs.amplify.aws/cli/graphql/authorization-rules/). Note: currently at least one authorization rule is required, and if multiple are specified, a `defaultAuthorizationMode` must be specified on the api as well. Specified authorization modes must be a superset of those configured in the graphql schema.\n\n## Examples\n\n### Simple Todo List With Cognito Userpool-based Owner Authorization\n\nIn this example, we create a single model, which will use `user pool` auth in order to allow logged in users to create and manage their own `todos` privately.\n\nWe create a cdk App and Stack, though you may be deploying this to a custom stack, this is purely illustrative for a concise demo.\n\nWe then wire this through to import a user pool which was already deployed (creating and deploying is out of scope for this example).\n\n```ts\nimport { App, Stack } from 'aws-cdk-lib';\nimport { UserPool } from 'aws-cdk-lib/aws-cognito';\nimport { AmplifyGraphqlApi, AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct';\n\nconst app = new App();\nconst stack = new Stack(app, 'TodoStack');\n\nnew AmplifyGraphqlApi(stack, 'TodoApp', {\n definition: AmplifyGraphqlDefinition.fromString(/* GraphQL */ `\n type Todo @model @auth(rules: [{ allow: owner }]) {\n description: String!\n completed: Boolean\n }\n `),\n authorizationModes: {\n userPoolConfig: {\n userPool: UserPool.fromUserPoolId(stack, 'ImportedUserPool', '<YOUR_USER_POOL_ID>'),\n },\n },\n});\n```\n\n### Multiple related models, with public read access, and admin read/write access\n\nIn this example, we create a two related models, which will use which logged in users in the 'Author' and 'Admin' user groups will have\nfull access to, and customers requesting with api key will only have read permissions on.\n\n```ts\nimport { App, Stack } from 'aws-cdk-lib';\nimport { UserPool } from 'aws-cdk-lib/aws-cognito';\nimport { AmplifyGraphqlApi, AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct';\n\nconst app = new App();\nconst stack = new Stack(app, 'BlogStack');\n\nnew AmplifyGraphqlApi(stack, 'BlogApp', {\n definition: AmplifyGraphqlDefinition.fromString(/* GraphQL */ `\n type Blog @model @auth(rules: [{ allow: public, operations: [read] }, { allow: groups, groups: [\"Author\", \"Admin\"] }]) {\n title: String!\n description: String\n posts: [Post] @hasMany\n }\n\n type Post @model @auth(rules: [{ allow: public, operations: [read] }, { allow: groups, groups: [\"Author\", \"Admin\"] }]) {\n title: String!\n content: [String]\n blog: Blog @belongsTo\n }\n `),\n authorizationModes: {\n defaultAuthorizationMode: 'API_KEY',\n apiKeyConfig: {\n description: 'Api Key for public access',\n expires: cdk.Duration.days(7),\n },\n userPoolConfig: {\n userPool: UserPool.fromUserPoolId(stack, 'ImportedUserPool', '<YOUR_USER_POOL_ID>'),\n },\n },\n});\n```\n\n### Import GraphQL Schema from files, instead of inline.\n\nIn this example, we import the schema definition itself from one or more local file, rather than an inline graphql string.\n\n```graphql\n# todo.graphql\ntype Todo @model @auth(rules: [{ allow: owner }]) {\n content: String!\n done: Boolean\n}\n```\n\n```graphql\n# blog.graphql\ntype Blog @model @auth(rules: [{ allow: owner }, { allow: public, operations: [read] }]) {\n title: String!\n description: String\n posts: [Post] @hasMany\n}\n\ntype Post @model @auth(rules: [{ allow: owner }, { allow: public, operations: [read] }]) {\n title: String!\n content: [String]\n blog: Blog @belongsTo\n}\n```\n\n```ts\n// app.ts\nimport { App, Stack } from 'aws-cdk-lib';\nimport { UserPool } from 'aws-cdk-lib/aws-cognito';\nimport { AmplifyGraphqlApi, AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct';\n\nconst app = new App();\nconst stack = new Stack(app, 'MultiFileStack');\n\nnew AmplifyGraphqlApi(stack, 'MultiFileDefinition', {\n definition: AmplifyGraphqlDefinition.fromFiles(path.join(__dirname, 'todo.graphql'), path.join(__dirname, 'blog.graphql')),\n authorizationModes: {\n defaultAuthorizationMode: 'API_KEY',\n apiKeyConfig: {\n description: 'Api Key for public access',\n expires: cdk.Duration.days(7),\n },\n userPoolConfig: {\n userPool: UserPool.fromUserPoolId(stack, 'ImportedUserPool', '<YOUR_USER_POOL_ID>'),\n },\n },\n});\n```\n\n# API Reference <a name=\"API Reference\" id=\"api-reference\"></a>\n\n## Constructs <a name=\"Constructs\" id=\"Constructs\"></a>\n\n### AmplifyGraphqlApi <a name=\"AmplifyGraphqlApi\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi\"></a>\n\nL3 Construct which invokes the Amplify Transformer Pattern over an input Graphql Schema.\n\nThis can be used to quickly define appsync apis which support full CRUD+List and Subscriptions, relationships,\nauth, search over data, the ability to inject custom business logic and query/mutation operations, and connect to ML services.\n\nFor more information, refer to the docs links below:\nData Modeling - https://docs.amplify.aws/cli/graphql/data-modeling/\nAuthorization - https://docs.amplify.aws/cli/graphql/authorization-rules/\nCustom Business Logic - https://docs.amplify.aws/cli/graphql/custom-business-logic/\nSearch - https://docs.amplify.aws/cli/graphql/search-and-result-aggregations/\nML Services - https://docs.amplify.aws/cli/graphql/connect-to-machine-learning-services/\n\nFor a full reference of the supported custom graphql directives - https://docs.amplify.aws/cli/graphql/directives-reference/\n\nThe output of this construct is a mapping of L1 resources generated by the transformer, which generally follow the access pattern\n\n```typescript\n const api = new AmplifyGraphQlApi(this, 'api', { <params> });\n api.resources.api.xrayEnabled = true;\n Object.values(api.resources.tables).forEach(table => table.pointInTimeRecoverySpecification = { pointInTimeRecoveryEnabled: false });\n```\n`resources.<ResourceType>.<ResourceName>` - you can then perform any CDK action on these resulting resoureces.\n\n#### Initializers <a name=\"Initializers\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlApi } from '@aws-amplify/graphql-api-construct'\n\nnew AmplifyGraphqlApi(scope: Construct, id: string, props: AmplifyGraphqlApiProps)\n```\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.scope\">scope</a></code> | <code>constructs.Construct</code> | the scope to create this construct within. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.id\">id</a></code> | <code>string</code> | the id to use for this api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.props\">props</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps\">AmplifyGraphqlApiProps</a></code> | the properties used to configure the generated api. |\n\n---\n\n##### `scope`<sup>Required</sup> <a name=\"scope\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.scope\"></a>\n\n- *Type:* constructs.Construct\n\nthe scope to create this construct within.\n\n---\n\n##### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.id\"></a>\n\n- *Type:* string\n\nthe id to use for this api.\n\n---\n\n##### `props`<sup>Required</sup> <a name=\"props\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.Initializer.parameter.props\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps\">AmplifyGraphqlApiProps</a>\n\nthe properties used to configure the generated api.\n\n---\n\n#### Methods <a name=\"Methods\" id=\"Methods\"></a>\n\n| **Name** | **Description** |\n| --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.toString\">toString</a></code> | Returns a string representation of this construct. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource\">addDynamoDbDataSource</a></code> | Add a new DynamoDB data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource\">addElasticsearchDataSource</a></code> | Add a new elasticsearch data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource\">addEventBridgeDataSource</a></code> | Add an EventBridge data source to this api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addFunction\">addFunction</a></code> | Add an appsync function to the api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource\">addHttpDataSource</a></code> | Add a new http data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource\">addLambdaDataSource</a></code> | Add a new Lambda data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addNoneDataSource\">addNoneDataSource</a></code> | Add a new dummy data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource\">addOpenSearchDataSource</a></code> | dd a new OpenSearch data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource\">addRdsDataSource</a></code> | Add a new Rds data source to this API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addResolver\">addResolver</a></code> | Add a resolver to the api. |\n\n---\n\n##### `toString` <a name=\"toString\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.toString\"></a>\n\n```typescript\npublic toString(): string\n```\n\nReturns a string representation of this construct.\n\n##### `addDynamoDbDataSource` <a name=\"addDynamoDbDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource\"></a>\n\n```typescript\npublic addDynamoDbDataSource(id: string, table: ITable, options?: DataSourceOptions): DynamoDbDataSource\n```\n\nAdd a new DynamoDB data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `table`<sup>Required</sup> <a name=\"table\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource.parameter.table\"></a>\n\n- *Type:* aws-cdk-lib.aws_dynamodb.ITable\n\nThe DynamoDB table backing this data source.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addDynamoDbDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### ~~`addElasticsearchDataSource`~~ <a name=\"addElasticsearchDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource\"></a>\n\n```typescript\npublic addElasticsearchDataSource(id: string, domain: IDomain, options?: DataSourceOptions): ElasticsearchDataSource\n```\n\nAdd a new elasticsearch data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `domain`<sup>Required</sup> <a name=\"domain\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource.parameter.domain\"></a>\n\n- *Type:* aws-cdk-lib.aws_elasticsearch.IDomain\n\nThe elasticsearch domain for this data source.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addElasticsearchDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addEventBridgeDataSource` <a name=\"addEventBridgeDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource\"></a>\n\n```typescript\npublic addEventBridgeDataSource(id: string, eventBus: IEventBus, options?: DataSourceOptions): EventBridgeDataSource\n```\n\nAdd an EventBridge data source to this api.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `eventBus`<sup>Required</sup> <a name=\"eventBus\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource.parameter.eventBus\"></a>\n\n- *Type:* aws-cdk-lib.aws_events.IEventBus\n\nThe EventBridge EventBus on which to put events.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addEventBridgeDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addFunction` <a name=\"addFunction\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addFunction\"></a>\n\n```typescript\npublic addFunction(id: string, props: AddFunctionProps): AppsyncFunction\n```\n\nAdd an appsync function to the api.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addFunction.parameter.id\"></a>\n\n- *Type:* string\n\nthe function's id.\n\n---\n\n###### `props`<sup>Required</sup> <a name=\"props\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addFunction.parameter.props\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps\">AddFunctionProps</a>\n\n---\n\n##### `addHttpDataSource` <a name=\"addHttpDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource\"></a>\n\n```typescript\npublic addHttpDataSource(id: string, endpoint: string, options?: HttpDataSourceOptions): HttpDataSource\n```\n\nAdd a new http data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `endpoint`<sup>Required</sup> <a name=\"endpoint\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource.parameter.endpoint\"></a>\n\n- *Type:* string\n\nThe http endpoint.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addHttpDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.HttpDataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addLambdaDataSource` <a name=\"addLambdaDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource\"></a>\n\n```typescript\npublic addLambdaDataSource(id: string, lambdaFunction: IFunction, options?: DataSourceOptions): LambdaDataSource\n```\n\nAdd a new Lambda data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `lambdaFunction`<sup>Required</sup> <a name=\"lambdaFunction\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource.parameter.lambdaFunction\"></a>\n\n- *Type:* aws-cdk-lib.aws_lambda.IFunction\n\nThe Lambda function to call to interact with this data source.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addLambdaDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addNoneDataSource` <a name=\"addNoneDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addNoneDataSource\"></a>\n\n```typescript\npublic addNoneDataSource(id: string, options?: DataSourceOptions): NoneDataSource\n```\n\nAdd a new dummy data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\nUseful for pipeline resolvers and for backend changes that don't require a data source.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addNoneDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addNoneDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addOpenSearchDataSource` <a name=\"addOpenSearchDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource\"></a>\n\n```typescript\npublic addOpenSearchDataSource(id: string, domain: IDomain, options?: DataSourceOptions): OpenSearchDataSource\n```\n\ndd a new OpenSearch data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `domain`<sup>Required</sup> <a name=\"domain\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource.parameter.domain\"></a>\n\n- *Type:* aws-cdk-lib.aws_opensearchservice.IDomain\n\nThe OpenSearch domain for this data source.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addOpenSearchDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addRdsDataSource` <a name=\"addRdsDataSource\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource\"></a>\n\n```typescript\npublic addRdsDataSource(id: string, serverlessCluster: IServerlessCluster, secretStore: ISecret, databaseName?: string, options?: DataSourceOptions): RdsDataSource\n```\n\nAdd a new Rds data source to this API.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.id\"></a>\n\n- *Type:* string\n\nThe data source's id.\n\n---\n\n###### `serverlessCluster`<sup>Required</sup> <a name=\"serverlessCluster\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.serverlessCluster\"></a>\n\n- *Type:* aws-cdk-lib.aws_rds.IServerlessCluster\n\nThe serverless cluster to interact with this data source.\n\n---\n\n###### `secretStore`<sup>Required</sup> <a name=\"secretStore\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.secretStore\"></a>\n\n- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret\n\nThe secret store that contains the username and password for the serverless cluster.\n\n---\n\n###### `databaseName`<sup>Optional</sup> <a name=\"databaseName\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.databaseName\"></a>\n\n- *Type:* string\n\nThe optional name of the database to use within the cluster.\n\n---\n\n###### `options`<sup>Optional</sup> <a name=\"options\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addRdsDataSource.parameter.options\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.DataSourceOptions\n\nThe optional configuration for this data source.\n\n---\n\n##### `addResolver` <a name=\"addResolver\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addResolver\"></a>\n\n```typescript\npublic addResolver(id: string, props: ExtendedResolverProps): Resolver\n```\n\nAdd a resolver to the api.\n\nThis is a proxy method to the L2 GraphqlApi Construct.\n\n###### `id`<sup>Required</sup> <a name=\"id\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addResolver.parameter.id\"></a>\n\n- *Type:* string\n\nThe resolver's id.\n\n---\n\n###### `props`<sup>Required</sup> <a name=\"props\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.addResolver.parameter.props\"></a>\n\n- *Type:* aws-cdk-lib.aws_appsync.ExtendedResolverProps\n\nthe resolver properties.\n\n---\n\n#### Static Functions <a name=\"Static Functions\" id=\"Static Functions\"></a>\n\n| **Name** | **Description** |\n| --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.isConstruct\">isConstruct</a></code> | Checks if `x` is a construct. |\n\n---\n\n##### ~~`isConstruct`~~ <a name=\"isConstruct\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.isConstruct\"></a>\n\n```typescript\nimport { AmplifyGraphqlApi } from '@aws-amplify/graphql-api-construct'\n\nAmplifyGraphqlApi.isConstruct(x: any)\n```\n\nChecks if `x` is a construct.\n\n###### `x`<sup>Required</sup> <a name=\"x\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.isConstruct.parameter.x\"></a>\n\n- *Type:* any\n\nAny object.\n\n---\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.node\">node</a></code> | <code>constructs.Node</code> | The tree node. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.generatedFunctionSlots\">generatedFunctionSlots</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]</code> | Resolvers generated by the transform process, persisted on the side in order to facilitate pulling a manifest for the purposes of inspecting and producing overrides. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.graphqlUrl\">graphqlUrl</a></code> | <code>string</code> | Graphql URL For the generated API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.realtimeUrl\">realtimeUrl</a></code> | <code>string</code> | Realtime URL For the generated API. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.resources\">resources</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources\">AmplifyGraphqlApiResources</a></code> | Generated L1 and L2 CDK resources. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.apiKey\">apiKey</a></code> | <code>string</code> | Generated Api Key if generated. |\n\n---\n\n##### `node`<sup>Required</sup> <a name=\"node\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.node\"></a>\n\n```typescript\npublic readonly node: Node;\n```\n\n- *Type:* constructs.Node\n\nThe tree node.\n\n---\n\n##### `generatedFunctionSlots`<sup>Required</sup> <a name=\"generatedFunctionSlots\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.generatedFunctionSlots\"></a>\n\n```typescript\npublic readonly generatedFunctionSlots: MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[];\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]\n\nResolvers generated by the transform process, persisted on the side in order to facilitate pulling a manifest for the purposes of inspecting and producing overrides.\n\n---\n\n##### `graphqlUrl`<sup>Required</sup> <a name=\"graphqlUrl\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.graphqlUrl\"></a>\n\n```typescript\npublic readonly graphqlUrl: string;\n```\n\n- *Type:* string\n\nGraphql URL For the generated API.\n\nMay be a CDK Token.\n\n---\n\n##### `realtimeUrl`<sup>Required</sup> <a name=\"realtimeUrl\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.realtimeUrl\"></a>\n\n```typescript\npublic readonly realtimeUrl: string;\n```\n\n- *Type:* string\n\nRealtime URL For the generated API.\n\nMay be a CDK Token.\n\n---\n\n##### `resources`<sup>Required</sup> <a name=\"resources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.resources\"></a>\n\n```typescript\npublic readonly resources: AmplifyGraphqlApiResources;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources\">AmplifyGraphqlApiResources</a>\n\nGenerated L1 and L2 CDK resources.\n\n---\n\n##### `apiKey`<sup>Optional</sup> <a name=\"apiKey\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.apiKey\"></a>\n\n```typescript\npublic readonly apiKey: string;\n```\n\n- *Type:* string\n\nGenerated Api Key if generated.\n\nMay be a CDK Token.\n\n---\n\n\n## Structs <a name=\"Structs\" id=\"Structs\"></a>\n\n### AddFunctionProps <a name=\"AddFunctionProps\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps\"></a>\n\nInput type properties when adding a new appsync.AppsyncFunction to the generated API. This is equivalent to the Omit<appsync.AppsyncFunctionProps, 'api'>.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.Initializer\"></a>\n\n```typescript\nimport { AddFunctionProps } from '@aws-amplify/graphql-api-construct'\n\nconst addFunctionProps: AddFunctionProps = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.dataSource\">dataSource</a></code> | <code>aws-cdk-lib.aws_appsync.BaseDataSource</code> | the data source linked to this AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.name\">name</a></code> | <code>string</code> | the name of the AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.code\">code</a></code> | <code>aws-cdk-lib.aws_appsync.Code</code> | The function code. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.description\">description</a></code> | <code>string</code> | the description for this AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.requestMappingTemplate\">requestMappingTemplate</a></code> | <code>aws-cdk-lib.aws_appsync.MappingTemplate</code> | the request mapping template for the AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.responseMappingTemplate\">responseMappingTemplate</a></code> | <code>aws-cdk-lib.aws_appsync.MappingTemplate</code> | the response mapping template for the AppSync Function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AddFunctionProps.property.runtime\">runtime</a></code> | <code>aws-cdk-lib.aws_appsync.FunctionRuntime</code> | The functions runtime. |\n\n---\n\n##### `dataSource`<sup>Required</sup> <a name=\"dataSource\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.dataSource\"></a>\n\n```typescript\npublic readonly dataSource: BaseDataSource;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.BaseDataSource\n\nthe data source linked to this AppSync Function.\n\n---\n\n##### `name`<sup>Required</sup> <a name=\"name\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.name\"></a>\n\n```typescript\npublic readonly name: string;\n```\n\n- *Type:* string\n\nthe name of the AppSync Function.\n\n---\n\n##### `code`<sup>Optional</sup> <a name=\"code\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.code\"></a>\n\n```typescript\npublic readonly code: Code;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.Code\n- *Default:* no code is used\n\nThe function code.\n\n---\n\n##### `description`<sup>Optional</sup> <a name=\"description\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.description\"></a>\n\n```typescript\npublic readonly description: string;\n```\n\n- *Type:* string\n- *Default:* no description\n\nthe description for this AppSync Function.\n\n---\n\n##### `requestMappingTemplate`<sup>Optional</sup> <a name=\"requestMappingTemplate\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.requestMappingTemplate\"></a>\n\n```typescript\npublic readonly requestMappingTemplate: MappingTemplate;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.MappingTemplate\n- *Default:* no request mapping template\n\nthe request mapping template for the AppSync Function.\n\n---\n\n##### `responseMappingTemplate`<sup>Optional</sup> <a name=\"responseMappingTemplate\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.responseMappingTemplate\"></a>\n\n```typescript\npublic readonly responseMappingTemplate: MappingTemplate;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.MappingTemplate\n- *Default:* no response mapping template\n\nthe response mapping template for the AppSync Function.\n\n---\n\n##### `runtime`<sup>Optional</sup> <a name=\"runtime\" id=\"@aws-amplify/graphql-api-construct.AddFunctionProps.property.runtime\"></a>\n\n```typescript\npublic readonly runtime: FunctionRuntime;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.FunctionRuntime\n- *Default:* no function runtime, VTL mapping templates used\n\nThe functions runtime.\n\n---\n\n### AmplifyGraphqlApiCfnResources <a name=\"AmplifyGraphqlApiCfnResources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources\"></a>\n\nL1 CDK resources from the Api which were generated as part of the transform.\n\nThese are potentially stored under nested stacks, but presented organized by type instead.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlApiCfnResources } from '@aws-amplify/graphql-api-construct'\n\nconst amplifyGraphqlApiCfnResources: AmplifyGraphqlApiCfnResources = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.additionalCfnResources\">additionalCfnResources</a></code> | <code>{[ key: string ]: aws-cdk-lib.CfnResource}</code> | Remaining L1 resources generated, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnDataSources\">cfnDataSources</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_appsync.CfnDataSource}</code> | The Generated AppSync DataSource L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnFunctionConfigurations\">cfnFunctionConfigurations</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_appsync.CfnFunctionConfiguration}</code> | The Generated AppSync Function L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnFunctions\">cfnFunctions</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_lambda.CfnFunction}</code> | The Generated Lambda Function L1 Resources, keyed by function name. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnGraphqlApi\">cfnGraphqlApi</a></code> | <code>aws-cdk-lib.aws_appsync.CfnGraphQLApi</code> | The Generated AppSync Api L1 Resource. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnGraphqlSchema\">cfnGraphqlSchema</a></code> | <code>aws-cdk-lib.aws_appsync.CfnGraphQLSchema</code> | The Generated AppSync Schema L1 Resource. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnResolvers\">cfnResolvers</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_appsync.CfnResolver}</code> | The Generated AppSync Resolver L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnRoles\">cfnRoles</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_iam.CfnRole}</code> | The Generated IAM Role L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnTables\">cfnTables</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_dynamodb.CfnTable}</code> | The Generated DynamoDB Table L1 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnApiKey\">cfnApiKey</a></code> | <code>aws-cdk-lib.aws_appsync.CfnApiKey</code> | The Generated AppSync Api Key L1 Resource. |\n\n---\n\n##### `additionalCfnResources`<sup>Required</sup> <a name=\"additionalCfnResources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.additionalCfnResources\"></a>\n\n```typescript\npublic readonly additionalCfnResources: {[ key: string ]: CfnResource};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.CfnResource}\n\nRemaining L1 resources generated, keyed by logicalId.\n\n---\n\n##### `cfnDataSources`<sup>Required</sup> <a name=\"cfnDataSources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnDataSources\"></a>\n\n```typescript\npublic readonly cfnDataSources: {[ key: string ]: CfnDataSource};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_appsync.CfnDataSource}\n\nThe Generated AppSync DataSource L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnFunctionConfigurations`<sup>Required</sup> <a name=\"cfnFunctionConfigurations\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnFunctionConfigurations\"></a>\n\n```typescript\npublic readonly cfnFunctionConfigurations: {[ key: string ]: CfnFunctionConfiguration};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_appsync.CfnFunctionConfiguration}\n\nThe Generated AppSync Function L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnFunctions`<sup>Required</sup> <a name=\"cfnFunctions\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnFunctions\"></a>\n\n```typescript\npublic readonly cfnFunctions: {[ key: string ]: CfnFunction};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_lambda.CfnFunction}\n\nThe Generated Lambda Function L1 Resources, keyed by function name.\n\n---\n\n##### `cfnGraphqlApi`<sup>Required</sup> <a name=\"cfnGraphqlApi\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnGraphqlApi\"></a>\n\n```typescript\npublic readonly cfnGraphqlApi: CfnGraphQLApi;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.CfnGraphQLApi\n\nThe Generated AppSync Api L1 Resource.\n\n---\n\n##### `cfnGraphqlSchema`<sup>Required</sup> <a name=\"cfnGraphqlSchema\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnGraphqlSchema\"></a>\n\n```typescript\npublic readonly cfnGraphqlSchema: CfnGraphQLSchema;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.CfnGraphQLSchema\n\nThe Generated AppSync Schema L1 Resource.\n\n---\n\n##### `cfnResolvers`<sup>Required</sup> <a name=\"cfnResolvers\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnResolvers\"></a>\n\n```typescript\npublic readonly cfnResolvers: {[ key: string ]: CfnResolver};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_appsync.CfnResolver}\n\nThe Generated AppSync Resolver L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnRoles`<sup>Required</sup> <a name=\"cfnRoles\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnRoles\"></a>\n\n```typescript\npublic readonly cfnRoles: {[ key: string ]: CfnRole};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_iam.CfnRole}\n\nThe Generated IAM Role L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnTables`<sup>Required</sup> <a name=\"cfnTables\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnTables\"></a>\n\n```typescript\npublic readonly cfnTables: {[ key: string ]: CfnTable};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_dynamodb.CfnTable}\n\nThe Generated DynamoDB Table L1 Resources, keyed by logicalId.\n\n---\n\n##### `cfnApiKey`<sup>Optional</sup> <a name=\"cfnApiKey\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources.property.cfnApiKey\"></a>\n\n```typescript\npublic readonly cfnApiKey: CfnApiKey;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.CfnApiKey\n\nThe Generated AppSync Api Key L1 Resource.\n\n---\n\n### AmplifyGraphqlApiProps <a name=\"AmplifyGraphqlApiProps\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps\"></a>\n\nInput props for the AmplifyGraphqlApi construct.\n\nSpecifies what the input to transform into an Api, and configurations for\nthe transformation process.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlApiProps } from '@aws-amplify/graphql-api-construct'\n\nconst amplifyGraphqlApiProps: AmplifyGraphqlApiProps = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.authorizationModes\">authorizationModes</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes\">AuthorizationModes</a></code> | Required auth modes for the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.definition\">definition</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition\">IAmplifyGraphqlDefinition</a></code> | The definition to transform in a full Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.apiName\">apiName</a></code> | <code>string</code> | Name to be used for the AppSync Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.conflictResolution\">conflictResolution</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.ConflictResolution\">ConflictResolution</a></code> | Configure conflict resolution on the Api, which is required to enable DataStore Api functionality. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.functionNameMap\">functionNameMap</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}</code> | Lambda functions referenced in the definitions's. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.functionSlots\">functionSlots</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]</code> | Overrides for a given slot in the generated resolver pipelines. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.outputStorageStrategy\">outputStorageStrategy</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy\">IBackendOutputStorageStrategy</a></code> | Strategy to store construct outputs. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.predictionsBucket\">predictionsBucket</a></code> | <code>aws-cdk-lib.aws_s3.IBucket</code> | If using predictions, a bucket must be provided which will be used to search for assets. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.stackMappings\">stackMappings</a></code> | <code>{[ key: string ]: string}</code> | StackMappings override the assigned nested stack on a per-resource basis. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.transformerPlugins\">transformerPlugins</a></code> | <code>any[]</code> | Provide a list of additional custom transformers which are injected into the transform process. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.translationBehavior\">translationBehavior</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior\">PartialTranslationBehavior</a></code> | This replaces feature flags from the Api construct, for general information on what these parameters do, refer to https://docs.amplify.aws/cli/reference/feature-flags/#graphQLTransformer. |\n\n---\n\n##### `authorizationModes`<sup>Required</sup> <a name=\"authorizationModes\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.authorizationModes\"></a>\n\n```typescript\npublic readonly authorizationModes: AuthorizationModes;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes\">AuthorizationModes</a>\n\nRequired auth modes for the Api.\n\nThis object must be a superset of the configured auth providers in the Api definition.\nFor more information, refer to https://docs.amplify.aws/cli/graphql/authorization-rules/\n\n---\n\n##### `definition`<sup>Required</sup> <a name=\"definition\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.definition\"></a>\n\n```typescript\npublic readonly definition: IAmplifyGraphqlDefinition;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition\">IAmplifyGraphqlDefinition</a>\n\nThe definition to transform in a full Api.\n\nCan be constructed via the AmplifyGraphqlDefinition class.\n\n---\n\n##### `apiName`<sup>Optional</sup> <a name=\"apiName\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.apiName\"></a>\n\n```typescript\npublic readonly apiName: string;\n```\n\n- *Type:* string\n\nName to be used for the AppSync Api.\n\nDefault: construct id.\n\n---\n\n##### `conflictResolution`<sup>Optional</sup> <a name=\"conflictResolution\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.conflictResolution\"></a>\n\n```typescript\npublic readonly conflictResolution: ConflictResolution;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.ConflictResolution\">ConflictResolution</a>\n\nConfigure conflict resolution on the Api, which is required to enable DataStore Api functionality.\n\nFor more information, refer to https://docs.amplify.aws/lib/datastore/getting-started/q/platform/js/\n\n---\n\n##### `functionNameMap`<sup>Optional</sup> <a name=\"functionNameMap\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.functionNameMap\"></a>\n\n```typescript\npublic readonly functionNameMap: {[ key: string ]: IFunction};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}\n\nLambda functions referenced in the definitions's.\n\n---\n\n##### `functionSlots`<sup>Optional</sup> <a name=\"functionSlots\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.functionSlots\"></a>\n\n```typescript\npublic readonly functionSlots: MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[];\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]\n\nOverrides for a given slot in the generated resolver pipelines.\n\nFor more information about what slots are available,\nrefer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#override-amplify-generated-resolvers.\n\n---\n\n##### `outputStorageStrategy`<sup>Optional</sup> <a name=\"outputStorageStrategy\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.outputStorageStrategy\"></a>\n\n```typescript\npublic readonly outputStorageStrategy: IBackendOutputStorageStrategy;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy\">IBackendOutputStorageStrategy</a>\n\nStrategy to store construct outputs.\n\nIf no outputStorageStrategey is provided a default strategy will be used.\n\n---\n\n##### `predictionsBucket`<sup>Optional</sup> <a name=\"predictionsBucket\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.predictionsBucket\"></a>\n\n```typescript\npublic readonly predictionsBucket: IBucket;\n```\n\n- *Type:* aws-cdk-lib.aws_s3.IBucket\n\nIf using predictions, a bucket must be provided which will be used to search for assets.\n\n---\n\n##### `stackMappings`<sup>Optional</sup> <a name=\"stackMappings\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.stackMappings\"></a>\n\n```typescript\npublic readonly stackMappings: {[ key: string ]: string};\n```\n\n- *Type:* {[ key: string ]: string}\n\nStackMappings override the assigned nested stack on a per-resource basis.\n\nOnly applies to resolvers, and takes the form\n{ <logicalId>: <stackName> }\nIt is not recommended to use this parameter unless you are encountering stack resource count limits, and worth noting that\nafter initial deployment AppSync resolvers cannot be moved between nested stacks, they will need to be removed from the app,\nthen re-added from a new stack.\n\n---\n\n##### `transformerPlugins`<sup>Optional</sup> <a name=\"transformerPlugins\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.transformerPlugins\"></a>\n\n```typescript\npublic readonly transformerPlugins: any[];\n```\n\n- *Type:* any[]\n\nProvide a list of additional custom transformers which are injected into the transform process.\n\nThese custom transformers must be implemented with aws-cdk-lib >=2.80.0, and\n\n---\n\n##### `translationBehavior`<sup>Optional</sup> <a name=\"translationBehavior\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiProps.property.translationBehavior\"></a>\n\n```typescript\npublic readonly translationBehavior: PartialTranslationBehavior;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior\">PartialTranslationBehavior</a>\n\nThis replaces feature flags from the Api construct, for general information on what these parameters do, refer to https://docs.amplify.aws/cli/reference/feature-flags/#graphQLTransformer.\n\n---\n\n### AmplifyGraphqlApiResources <a name=\"AmplifyGraphqlApiResources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources\"></a>\n\nAccessible resources from the Api which were generated as part of the transform.\n\nThese are potentially stored under nested stacks, but presented organized by type instead.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlApiResources } from '@aws-amplify/graphql-api-construct'\n\nconst amplifyGraphqlApiResources: AmplifyGraphqlApiResources = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.cfnResources\">cfnResources</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources\">AmplifyGraphqlApiCfnResources</a></code> | L1 Cfn Resources, for when dipping down a level of abstraction is desirable. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.functions\">functions</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}</code> | The Generated Lambda Function L1 Resources, keyed by function name. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.graphqlApi\">graphqlApi</a></code> | <code>aws-cdk-lib.aws_appsync.IGraphqlApi</code> | The Generated AppSync Api L2 Resource, includes the Schema. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.nestedStacks\">nestedStacks</a></code> | <code>{[ key: string ]: aws-cdk-lib.NestedStack}</code> | Nested Stacks generated by the Api Construct. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.roles\">roles</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_iam.IRole}</code> | The Generated IAM Role L2 Resources, keyed by logicalId. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.tables\">tables</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_dynamodb.ITable}</code> | The Generated DynamoDB Table L2 Resources, keyed by logicalId. |\n\n---\n\n##### `cfnResources`<sup>Required</sup> <a name=\"cfnResources\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.cfnResources\"></a>\n\n```typescript\npublic readonly cfnResources: AmplifyGraphqlApiCfnResources;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlApiCfnResources\">AmplifyGraphqlApiCfnResources</a>\n\nL1 Cfn Resources, for when dipping down a level of abstraction is desirable.\n\n---\n\n##### `functions`<sup>Required</sup> <a name=\"functions\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.functions\"></a>\n\n```typescript\npublic readonly functions: {[ key: string ]: IFunction};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}\n\nThe Generated Lambda Function L1 Resources, keyed by function name.\n\n---\n\n##### `graphqlApi`<sup>Required</sup> <a name=\"graphqlApi\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.graphqlApi\"></a>\n\n```typescript\npublic readonly graphqlApi: IGraphqlApi;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.IGraphqlApi\n\nThe Generated AppSync Api L2 Resource, includes the Schema.\n\n---\n\n##### `nestedStacks`<sup>Required</sup> <a name=\"nestedStacks\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.nestedStacks\"></a>\n\n```typescript\npublic readonly nestedStacks: {[ key: string ]: NestedStack};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.NestedStack}\n\nNested Stacks generated by the Api Construct.\n\n---\n\n##### `roles`<sup>Required</sup> <a name=\"roles\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.roles\"></a>\n\n```typescript\npublic readonly roles: {[ key: string ]: IRole};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_iam.IRole}\n\nThe Generated IAM Role L2 Resources, keyed by logicalId.\n\n---\n\n##### `tables`<sup>Required</sup> <a name=\"tables\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.tables\"></a>\n\n```typescript\npublic readonly tables: {[ key: string ]: ITable};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_dynamodb.ITable}\n\nThe Generated DynamoDB Table L2 Resources, keyed by logicalId.\n\n---\n\n### ApiKeyAuthorizationConfig <a name=\"ApiKeyAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig\"></a>\n\nConfiguration for Api Keys on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { ApiKeyAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst apiKeyAuthorizationConfig: ApiKeyAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.property.expires\">expires</a></code> | <code>aws-cdk-lib.Duration</code> | A duration representing the time from Cloudformation deploy until expiry. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.property.description\">description</a></code> | <code>string</code> | Optional description for the Api Key to attach to the Api. |\n\n---\n\n##### `expires`<sup>Required</sup> <a name=\"expires\" id=\"@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.property.expires\"></a>\n\n```typescript\npublic readonly expires: Duration;\n```\n\n- *Type:* aws-cdk-lib.Duration\n\nA duration representing the time from Cloudformation deploy until expiry.\n\n---\n\n##### `description`<sup>Optional</sup> <a name=\"description\" id=\"@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig.property.description\"></a>\n\n```typescript\npublic readonly description: string;\n```\n\n- *Type:* string\n\nOptional description for the Api Key to attach to the Api.\n\n---\n\n### AuthorizationModes <a name=\"AuthorizationModes\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes\"></a>\n\nAuthorization Modes to apply to the Api.\n\nAt least one modes must be provided, and if more than one are provided a defaultAuthorizationMode must be specified.\nFor more information on Amplify Api auth, refer to https://docs.amplify.aws/cli/graphql/authorization-rules/#authorization-strategies\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.Initializer\"></a>\n\n```typescript\nimport { AuthorizationModes } from '@aws-amplify/graphql-api-construct'\n\nconst authorizationModes: AuthorizationModes = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.adminRoles\">adminRoles</a></code> | <code>aws-cdk-lib.aws_iam.IRole[]</code> | A list of roles granted full R/W access to the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.apiKeyConfig\">apiKeyConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig\">ApiKeyAuthorizationConfig</a></code> | AppSync Api Key config, required if a 'apiKey' auth provider is specified in the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.defaultAuthorizationMode\">defaultAuthorizationMode</a></code> | <code>string</code> | Default auth mode to provide to the Api, required if more than one config type is specified. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.iamConfig\">iamConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig\">IAMAuthorizationConfig</a></code> | IAM Auth config, required if an 'iam' auth provider is specified in the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.lambdaConfig\">lambdaConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig\">LambdaAuthorizationConfig</a></code> | Lambda config, required if a 'function' auth provider is specified in the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.oidcConfig\">oidcConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig\">OIDCAuthorizationConfig</a></code> | Cognito OIDC config, required if a 'oidc' auth provider is specified in the Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AuthorizationModes.property.userPoolConfig\">userPoolConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig\">UserPoolAuthorizationConfig</a></code> | Cognito UserPool config, required if a 'userPools' auth provider is specified in the Api. |\n\n---\n\n##### `adminRoles`<sup>Optional</sup> <a name=\"adminRoles\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.adminRoles\"></a>\n\n```typescript\npublic readonly adminRoles: IRole[];\n```\n\n- *Type:* aws-cdk-lib.aws_iam.IRole[]\n\nA list of roles granted full R/W access to the Api.\n\n---\n\n##### `apiKeyConfig`<sup>Optional</sup> <a name=\"apiKeyConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.apiKeyConfig\"></a>\n\n```typescript\npublic readonly apiKeyConfig: ApiKeyAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig\">ApiKeyAuthorizationConfig</a>\n\nAppSync Api Key config, required if a 'apiKey' auth provider is specified in the Api.\n\nApplies to 'public' auth strategy.\n\n---\n\n##### `defaultAuthorizationMode`<sup>Optional</sup> <a name=\"defaultAuthorizationMode\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.defaultAuthorizationMode\"></a>\n\n```typescript\npublic readonly defaultAuthorizationMode: string;\n```\n\n- *Type:* string\n\nDefault auth mode to provide to the Api, required if more than one config type is specified.\n\n---\n\n##### `iamConfig`<sup>Optional</sup> <a name=\"iamConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.iamConfig\"></a>\n\n```typescript\npublic readonly iamConfig: IAMAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig\">IAMAuthorizationConfig</a>\n\nIAM Auth config, required if an 'iam' auth provider is specified in the Api.\n\nApplies to 'public' and 'private' auth strategies.\n\n---\n\n##### `lambdaConfig`<sup>Optional</sup> <a name=\"lambdaConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.lambdaConfig\"></a>\n\n```typescript\npublic readonly lambdaConfig: LambdaAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig\">LambdaAuthorizationConfig</a>\n\nLambda config, required if a 'function' auth provider is specified in the Api.\n\nApplies to 'custom' auth strategy.\n\n---\n\n##### `oidcConfig`<sup>Optional</sup> <a name=\"oidcConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.oidcConfig\"></a>\n\n```typescript\npublic readonly oidcConfig: OIDCAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig\">OIDCAuthorizationConfig</a>\n\nCognito OIDC config, required if a 'oidc' auth provider is specified in the Api.\n\nApplies to 'owner', 'private', and 'group' auth strategies.\n\n---\n\n##### `userPoolConfig`<sup>Optional</sup> <a name=\"userPoolConfig\" id=\"@aws-amplify/graphql-api-construct.AuthorizationModes.property.userPoolConfig\"></a>\n\n```typescript\npublic readonly userPoolConfig: UserPoolAuthorizationConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig\">UserPoolAuthorizationConfig</a>\n\nCognito UserPool config, required if a 'userPools' auth provider is specified in the Api.\n\nApplies to 'owner', 'private', and 'group' auth strategies.\n\n---\n\n### AutomergeConflictResolutionStrategy <a name=\"AutomergeConflictResolutionStrategy\" id=\"@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\"></a>\n\nEnable optimistic concurrency on the project.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.Initializer\"></a>\n\n```typescript\nimport { AutomergeConflictResolutionStrategy } from '@aws-amplify/graphql-api-construct'\n\nconst automergeConflictResolutionStrategy: AutomergeConflictResolutionStrategy = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.property.detectionType\">detectionType</a></code> | <code>string</code> | The conflict detection type used for resolution. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.property.handlerType\">handlerType</a></code> | <code>string</code> | This conflict resolution strategy executes an auto-merge. |\n\n---\n\n##### `detectionType`<sup>Required</sup> <a name=\"detectionType\" id=\"@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.property.detectionType\"></a>\n\n```typescript\npublic readonly detectionType: string;\n```\n\n- *Type:* string\n\nThe conflict detection type used for resolution.\n\n---\n\n##### `handlerType`<sup>Required</sup> <a name=\"handlerType\" id=\"@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy.property.handlerType\"></a>\n\n```typescript\npublic readonly handlerType: string;\n```\n\n- *Type:* string\n\nThis conflict resolution strategy executes an auto-merge.\n\nFor more information, refer to https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html#conflict-detection-and-resolution\n\n---\n\n### ConflictResolution <a name=\"ConflictResolution\" id=\"@aws-amplify/graphql-api-construct.ConflictResolution\"></a>\n\nProject level configuration for conflict resolution.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.ConflictResolution.Initializer\"></a>\n\n```typescript\nimport { ConflictResolution } from '@aws-amplify/graphql-api-construct'\n\nconst conflictResolution: ConflictResolution = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ConflictResolution.property.models\">models</a></code> | <code>{[ key: string ]: <a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\">AutomergeConflictResolutionStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\">OptimisticConflictResolutionStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\">CustomConflictResolutionStrategy</a>}</code> | Model-specific conflict resolution overrides. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ConflictResolution.property.project\">project</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\">AutomergeConflictResolutionStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\">OptimisticConflictResolutionStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\">CustomConflictResolutionStrategy</a></code> | Project-wide config for conflict resolution. |\n\n---\n\n##### `models`<sup>Optional</sup> <a name=\"models\" id=\"@aws-amplify/graphql-api-construct.ConflictResolution.property.models\"></a>\n\n```typescript\npublic readonly models: {[ key: string ]: AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy};\n```\n\n- *Type:* {[ key: string ]: <a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\">AutomergeConflictResolutionStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\">OptimisticConflictResolutionStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\">CustomConflictResolutionStrategy</a>}\n\nModel-specific conflict resolution overrides.\n\n---\n\n##### `project`<sup>Optional</sup> <a name=\"project\" id=\"@aws-amplify/graphql-api-construct.ConflictResolution.property.project\"></a>\n\n```typescript\npublic readonly project: AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.AutomergeConflictResolutionStrategy\">AutomergeConflictResolutionStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\">OptimisticConflictResolutionStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\">CustomConflictResolutionStrategy</a>\n\nProject-wide config for conflict resolution.\n\nApplies to all non-overridden models.\n\n---\n\n### ConflictResolutionStrategyBase <a name=\"ConflictResolutionStrategyBase\" id=\"@aws-amplify/graphql-api-construct.ConflictResolutionStrategyBase\"></a>\n\nCommon parameters for conflict resolution.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.ConflictResolutionStrategyBase.Initializer\"></a>\n\n```typescript\nimport { ConflictResolutionStrategyBase } from '@aws-amplify/graphql-api-construct'\n\nconst conflictResolutionStrategyBase: ConflictResolutionStrategyBase = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ConflictResolutionStrategyBase.property.detectionType\">detectionType</a></code> | <code>string</code> | The conflict detection type used for resolution. |\n\n---\n\n##### `detectionType`<sup>Required</sup> <a name=\"detectionType\" id=\"@aws-amplify/graphql-api-construct.ConflictResolutionStrategyBase.property.detectionType\"></a>\n\n```typescript\npublic readonly detectionType: string;\n```\n\n- *Type:* string\n\nThe conflict detection type used for resolution.\n\n---\n\n### CustomConflictResolutionStrategy <a name=\"CustomConflictResolutionStrategy\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy\"></a>\n\nEnable custom sync on the project, powered by a lambda.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.Initializer\"></a>\n\n```typescript\nimport { CustomConflictResolutionStrategy } from '@aws-amplify/graphql-api-construct'\n\nconst customConflictResolutionStrategy: CustomConflictResolutionStrategy = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.detectionType\">detectionType</a></code> | <code>string</code> | The conflict detection type used for resolution. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.conflictHandler\">conflictHandler</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | The function which will be invoked for conflict resolution. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.handlerType\">handlerType</a></code> | <code>string</code> | This conflict resolution strategy uses a lambda handler type. |\n\n---\n\n##### `detectionType`<sup>Required</sup> <a name=\"detectionType\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.detectionType\"></a>\n\n```typescript\npublic readonly detectionType: string;\n```\n\n- *Type:* string\n\nThe conflict detection type used for resolution.\n\n---\n\n##### `conflictHandler`<sup>Required</sup> <a name=\"conflictHandler\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.conflictHandler\"></a>\n\n```typescript\npublic readonly conflictHandler: IFunction;\n```\n\n- *Type:* aws-cdk-lib.aws_lambda.IFunction\n\nThe function which will be invoked for conflict resolution.\n\n---\n\n##### `handlerType`<sup>Required</sup> <a name=\"handlerType\" id=\"@aws-amplify/graphql-api-construct.CustomConflictResolutionStrategy.property.handlerType\"></a>\n\n```typescript\npublic readonly handlerType: string;\n```\n\n- *Type:* string\n\nThis conflict resolution strategy uses a lambda handler type.\n\nFor more information, refer to https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html#conflict-detection-and-resolution\n\n---\n\n### FunctionSlotBase <a name=\"FunctionSlotBase\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase\"></a>\n\nCommon slot parameters.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase.Initializer\"></a>\n\n```typescript\nimport { FunctionSlotBase } from '@aws-amplify/graphql-api-construct'\n\nconst functionSlotBase: FunctionSlotBase = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotBase.property.fieldName\">fieldName</a></code> | <code>string</code> | The field to attach this function to on the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotBase.property.function\">function</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a></code> | The overridden behavior for this slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotBase.property.slotIndex\">slotIndex</a></code> | <code>number</code> | The slot index to use to inject this into the execution pipeline. |\n\n---\n\n##### `fieldName`<sup>Required</sup> <a name=\"fieldName\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase.property.fieldName\"></a>\n\n```typescript\npublic readonly fieldName: string;\n```\n\n- *Type:* string\n\nThe field to attach this function to on the Api definition.\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase.property.function\"></a>\n\n```typescript\npublic readonly function: FunctionSlotOverride;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a>\n\nThe overridden behavior for this slot.\n\n---\n\n##### `slotIndex`<sup>Required</sup> <a name=\"slotIndex\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotBase.property.slotIndex\"></a>\n\n```typescript\npublic readonly slotIndex: number;\n```\n\n- *Type:* number\n\nThe slot index to use to inject this into the execution pipeline.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n### FunctionSlotOverride <a name=\"FunctionSlotOverride\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotOverride\"></a>\n\nParams exposed to support configuring and overriding pipelined slots.\n\nThis allows configuration of the underlying function,\nincluding the request and response mapping templates.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotOverride.Initializer\"></a>\n\n```typescript\nimport { FunctionSlotOverride } from '@aws-amplify/graphql-api-construct'\n\nconst functionSlotOverride: FunctionSlotOverride = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride.property.requestMappingTemplate\">requestMappingTemplate</a></code> | <code>aws-cdk-lib.aws_appsync.MappingTemplate</code> | Override request mapping template for the function slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride.property.responseMappingTemplate\">responseMappingTemplate</a></code> | <code>aws-cdk-lib.aws_appsync.MappingTemplate</code> | Override response mapping template for the function slot. |\n\n---\n\n##### `requestMappingTemplate`<sup>Optional</sup> <a name=\"requestMappingTemplate\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotOverride.property.requestMappingTemplate\"></a>\n\n```typescript\npublic readonly requestMappingTemplate: MappingTemplate;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.MappingTemplate\n\nOverride request mapping template for the function slot.\n\nExecuted before the datasource is invoked.\n\n---\n\n##### `responseMappingTemplate`<sup>Optional</sup> <a name=\"responseMappingTemplate\" id=\"@aws-amplify/graphql-api-construct.FunctionSlotOverride.property.responseMappingTemplate\"></a>\n\n```typescript\npublic readonly responseMappingTemplate: MappingTemplate;\n```\n\n- *Type:* aws-cdk-lib.aws_appsync.MappingTemplate\n\nOverride response mapping template for the function slot.\n\nExecuted after the datasource is invoked.\n\n---\n\n### IAMAuthorizationConfig <a name=\"IAMAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig\"></a>\n\nConfiguration for IAM Authorization on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { IAMAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst iAMAuthorizationConfig: IAMAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.authenticatedUserRole\">authenticatedUserRole</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | Authenticated user role, applies to { provider: iam, allow: private } access. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.identityPoolId\">identityPoolId</a></code> | <code>string</code> | ID for the Cognito Identity Pool vending auth and unauth roles. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.unauthenticatedUserRole\">unauthenticatedUserRole</a></code> | <code>aws-cdk-lib.aws_iam.IRole</code> | Unauthenticated user role, applies to { provider: iam, allow: public } access. |\n\n---\n\n##### `authenticatedUserRole`<sup>Required</sup> <a name=\"authenticatedUserRole\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.authenticatedUserRole\"></a>\n\n```typescript\npublic readonly authenticatedUserRole: IRole;\n```\n\n- *Type:* aws-cdk-lib.aws_iam.IRole\n\nAuthenticated user role, applies to { provider: iam, allow: private } access.\n\n---\n\n##### `identityPoolId`<sup>Required</sup> <a name=\"identityPoolId\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.identityPoolId\"></a>\n\n```typescript\npublic readonly identityPoolId: string;\n```\n\n- *Type:* string\n\nID for the Cognito Identity Pool vending auth and unauth roles.\n\nFormat: `<region>:<id string>`\n\n---\n\n##### `unauthenticatedUserRole`<sup>Required</sup> <a name=\"unauthenticatedUserRole\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.unauthenticatedUserRole\"></a>\n\n```typescript\npublic readonly unauthenticatedUserRole: IRole;\n```\n\n- *Type:* aws-cdk-lib.aws_iam.IRole\n\nUnauthenticated user role, applies to { provider: iam, allow: public } access.\n\n---\n\n### LambdaAuthorizationConfig <a name=\"LambdaAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig\"></a>\n\nConfiguration for Custom Lambda authorization on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { LambdaAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst lambdaAuthorizationConfig: LambdaAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.property.function\">function</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | The authorizer lambda function. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.property.ttl\">ttl</a></code> | <code>aws-cdk-lib.Duration</code> | How long the results are cached. |\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.property.function\"></a>\n\n```typescript\npublic readonly function: IFunction;\n```\n\n- *Type:* aws-cdk-lib.aws_lambda.IFunction\n\nThe authorizer lambda function.\n\n---\n\n##### `ttl`<sup>Required</sup> <a name=\"ttl\" id=\"@aws-amplify/graphql-api-construct.LambdaAuthorizationConfig.property.ttl\"></a>\n\n```typescript\npublic readonly ttl: Duration;\n```\n\n- *Type:* aws-cdk-lib.Duration\n\nHow long the results are cached.\n\n---\n\n### MutationFunctionSlot <a name=\"MutationFunctionSlot\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot\"></a>\n\nSlot types for Mutation Resolvers.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.Initializer\"></a>\n\n```typescript\nimport { MutationFunctionSlot } from '@aws-amplify/graphql-api-construct'\n\nconst mutationFunctionSlot: MutationFunctionSlot = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.fieldName\">fieldName</a></code> | <code>string</code> | The field to attach this function to on the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.function\">function</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a></code> | The overridden behavior for this slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.slotIndex\">slotIndex</a></code> | <code>number</code> | The slot index to use to inject this into the execution pipeline. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.slotName\">slotName</a></code> | <code>string</code> | The slot name to inject this behavior into. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.typeName\">typeName</a></code> | <code>string</code> | This slot type applies to the Mutation type on the Api definition. |\n\n---\n\n##### `fieldName`<sup>Required</sup> <a name=\"fieldName\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.fieldName\"></a>\n\n```typescript\npublic readonly fieldName: string;\n```\n\n- *Type:* string\n\nThe field to attach this function to on the Api definition.\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.function\"></a>\n\n```typescript\npublic readonly function: FunctionSlotOverride;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a>\n\nThe overridden behavior for this slot.\n\n---\n\n##### `slotIndex`<sup>Required</sup> <a name=\"slotIndex\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.slotIndex\"></a>\n\n```typescript\npublic readonly slotIndex: number;\n```\n\n- *Type:* number\n\nThe slot index to use to inject this into the execution pipeline.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `slotName`<sup>Required</sup> <a name=\"slotName\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.slotName\"></a>\n\n```typescript\npublic readonly slotName: string;\n```\n\n- *Type:* string\n\nThe slot name to inject this behavior into.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `typeName`<sup>Required</sup> <a name=\"typeName\" id=\"@aws-amplify/graphql-api-construct.MutationFunctionSlot.property.typeName\"></a>\n\n```typescript\npublic readonly typeName: string;\n```\n\n- *Type:* string\n\nThis slot type applies to the Mutation type on the Api definition.\n\n---\n\n### OIDCAuthorizationConfig <a name=\"OIDCAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig\"></a>\n\nConfiguration for OpenId Connect Authorization on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { OIDCAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst oIDCAuthorizationConfig: OIDCAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.oidcIssuerUrl\">oidcIssuerUrl</a></code> | <code>string</code> | Url for the OIDC token issuer. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.oidcProviderName\">oidcProviderName</a></code> | <code>string</code> | The issuer for the OIDC configuration. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.tokenExpiryFromAuth\">tokenExpiryFromAuth</a></code> | <code>aws-cdk-lib.Duration</code> | The duration an OIDC token is valid after being authenticated by OIDC provider. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.tokenExpiryFromIssue\">tokenExpiryFromIssue</a></code> | <code>aws-cdk-lib.Duration</code> | The duration an OIDC token is valid after being issued to a user. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.clientId\">clientId</a></code> | <code>string</code> | The client identifier of the Relying party at the OpenID identity provider. |\n\n---\n\n##### `oidcIssuerUrl`<sup>Required</sup> <a name=\"oidcIssuerUrl\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.oidcIssuerUrl\"></a>\n\n```typescript\npublic readonly oidcIssuerUrl: string;\n```\n\n- *Type:* string\n\nUrl for the OIDC token issuer.\n\n---\n\n##### `oidcProviderName`<sup>Required</sup> <a name=\"oidcProviderName\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.oidcProviderName\"></a>\n\n```typescript\npublic readonly oidcProviderName: string;\n```\n\n- *Type:* string\n\nThe issuer for the OIDC configuration.\n\n---\n\n##### `tokenExpiryFromAuth`<sup>Required</sup> <a name=\"tokenExpiryFromAuth\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.tokenExpiryFromAuth\"></a>\n\n```typescript\npublic readonly tokenExpiryFromAuth: Duration;\n```\n\n- *Type:* aws-cdk-lib.Duration\n\nThe duration an OIDC token is valid after being authenticated by OIDC provider.\n\nauth_time claim in OIDC token is required for this validation to work.\n\n---\n\n##### `tokenExpiryFromIssue`<sup>Required</sup> <a name=\"tokenExpiryFromIssue\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.tokenExpiryFromIssue\"></a>\n\n```typescript\npublic readonly tokenExpiryFromIssue: Duration;\n```\n\n- *Type:* aws-cdk-lib.Duration\n\nThe duration an OIDC token is valid after being issued to a user.\n\nThis validation uses iat claim of OIDC token.\n\n---\n\n##### `clientId`<sup>Optional</sup> <a name=\"clientId\" id=\"@aws-amplify/graphql-api-construct.OIDCAuthorizationConfig.property.clientId\"></a>\n\n```typescript\npublic readonly clientId: string;\n```\n\n- *Type:* string\n\nThe client identifier of the Relying party at the OpenID identity provider.\n\nA regular expression can be specified so AppSync can validate against multiple client identifiers at a time. Example\n\n---\n\n### OptimisticConflictResolutionStrategy <a name=\"OptimisticConflictResolutionStrategy\" id=\"@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy\"></a>\n\nEnable automerge on the project.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.Initializer\"></a>\n\n```typescript\nimport { OptimisticConflictResolutionStrategy } from '@aws-amplify/graphql-api-construct'\n\nconst optimisticConflictResolutionStrategy: OptimisticConflictResolutionStrategy = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.property.detectionType\">detectionType</a></code> | <code>string</code> | The conflict detection type used for resolution. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.property.handlerType\">handlerType</a></code> | <code>string</code> | This conflict resolution strategy the _version to perform optimistic concurrency. |\n\n---\n\n##### `detectionType`<sup>Required</sup> <a name=\"detectionType\" id=\"@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.property.detectionType\"></a>\n\n```typescript\npublic readonly detectionType: string;\n```\n\n- *Type:* string\n\nThe conflict detection type used for resolution.\n\n---\n\n##### `handlerType`<sup>Required</sup> <a name=\"handlerType\" id=\"@aws-amplify/graphql-api-construct.OptimisticConflictResolutionStrategy.property.handlerType\"></a>\n\n```typescript\npublic readonly handlerType: string;\n```\n\n- *Type:* string\n\nThis conflict resolution strategy the _version to perform optimistic concurrency.\n\nFor more information, refer to https://docs.aws.amazon.com/appsync/latest/devguide/conflict-detection-and-sync.html#conflict-detection-and-resolution\n\n---\n\n### PartialTranslationBehavior <a name=\"PartialTranslationBehavior\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior\"></a>\n\nA utility interface equivalent to Partial<TranslationBehavior>.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.Initializer\"></a>\n\n```typescript\nimport { PartialTranslationBehavior } from '@aws-amplify/graphql-api-construct'\n\nconst partialTranslationBehavior: PartialTranslationBehavior = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.disableResolverDeduping\">disableResolverDeduping</a></code> | <code>boolean</code> | Disable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableAutoIndexQueryNames\">enableAutoIndexQueryNames</a></code> | <code>boolean</code> | Automate generation of query names, and as a result attaching all indexes as queries to the generated Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableSearchNodeToNodeEncryption\">enableSearchNodeToNodeEncryption</a></code> | <code>boolean</code> | If enabled, set nodeToNodeEncryption on the searchable domain (if one exists). |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableTransformerCfnOutputs\">enableTransformerCfnOutputs</a></code> | <code>boolean</code> | When enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.populateOwnerFieldForStaticGroupAuth\">populateOwnerFieldForStaticGroupAuth</a></code> | <code>boolean</code> | Ensure that the owner field is still populated even if a static iam or group authorization applies. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.respectPrimaryKeyAttributesOnConnectionField\">respectPrimaryKeyAttributesOnConnectionField</a></code> | <code>boolean</code> | Enable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.sandboxModeEnabled\">sandboxModeEnabled</a></code> | <code>boolean</code> | Enabling sandbox mode will enable api key auth on all models in the transformed schema. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.secondaryKeyAsGSI\">secondaryKeyAsGSI</a></code> | <code>boolean</code> | If disabled, generated. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.shouldDeepMergeDirectiveConfigDefaults\">shouldDeepMergeDirectiveConfigDefaults</a></code> | <code>boolean</code> | Restore parity w/ GQLv1. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.suppressApiKeyGeneration\">suppressApiKeyGeneration</a></code> | <code>boolean</code> | If enabled, disable api key resource generation even if specified as an auth rule on the construct. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.useSubUsernameForDefaultIdentityClaim\">useSubUsernameForDefaultIdentityClaim</a></code> | <code>boolean</code> | Ensure that oidc and userPool auth use the `sub` field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool. |\n\n---\n\n##### `disableResolverDeduping`<sup>Optional</sup> <a name=\"disableResolverDeduping\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.disableResolverDeduping\"></a>\n\n```typescript\npublic readonly disableResolverDeduping: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nDisable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered.\n\n---\n\n##### `enableAutoIndexQueryNames`<sup>Optional</sup> <a name=\"enableAutoIndexQueryNames\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableAutoIndexQueryNames\"></a>\n\n```typescript\npublic readonly enableAutoIndexQueryNames: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nAutomate generation of query names, and as a result attaching all indexes as queries to the generated Api.\n\nIf enabled,\n\n---\n\n##### `enableSearchNodeToNodeEncryption`<sup>Optional</sup> <a name=\"enableSearchNodeToNodeEncryption\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableSearchNodeToNodeEncryption\"></a>\n\n```typescript\npublic readonly enableSearchNodeToNodeEncryption: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nIf enabled, set nodeToNodeEncryption on the searchable domain (if one exists).\n\nNot recommended for use, prefer\nto use `Object.values(resources.additionalResources['AWS::Elasticsearch::Domain']).forEach((domain: CfnDomain) => {\n domain.NodeToNodeEncryptionOptions = { Enabled: True };\n});\n\n---\n\n##### `enableTransformerCfnOutputs`<sup>Optional</sup> <a name=\"enableTransformerCfnOutputs\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.enableTransformerCfnOutputs\"></a>\n\n```typescript\npublic readonly enableTransformerCfnOutputs: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nWhen enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted.\n\n---\n\n##### `populateOwnerFieldForStaticGroupAuth`<sup>Optional</sup> <a name=\"populateOwnerFieldForStaticGroupAuth\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.populateOwnerFieldForStaticGroupAuth\"></a>\n\n```typescript\npublic readonly populateOwnerFieldForStaticGroupAuth: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnsure that the owner field is still populated even if a static iam or group authorization applies.\n\n---\n\n##### `respectPrimaryKeyAttributesOnConnectionField`<sup>Optional</sup> <a name=\"respectPrimaryKeyAttributesOnConnectionField\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.respectPrimaryKeyAttributesOnConnectionField\"></a>\n\n```typescript\npublic readonly respectPrimaryKeyAttributesOnConnectionField: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app.\n\n---\n\n##### `sandboxModeEnabled`<sup>Optional</sup> <a name=\"sandboxModeEnabled\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.sandboxModeEnabled\"></a>\n\n```typescript\npublic readonly sandboxModeEnabled: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nEnabling sandbox mode will enable api key auth on all models in the transformed schema.\n\n---\n\n##### `secondaryKeyAsGSI`<sup>Optional</sup> <a name=\"secondaryKeyAsGSI\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.secondaryKeyAsGSI\"></a>\n\n```typescript\npublic readonly secondaryKeyAsGSI: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nIf disabled, generated.\n\n---\n\n##### `shouldDeepMergeDirectiveConfigDefaults`<sup>Optional</sup> <a name=\"shouldDeepMergeDirectiveConfigDefaults\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.shouldDeepMergeDirectiveConfigDefaults\"></a>\n\n```typescript\npublic readonly shouldDeepMergeDirectiveConfigDefaults: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nRestore parity w/ GQLv1.\n\n---\n\n##### `suppressApiKeyGeneration`<sup>Optional</sup> <a name=\"suppressApiKeyGeneration\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.suppressApiKeyGeneration\"></a>\n\n```typescript\npublic readonly suppressApiKeyGeneration: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nIf enabled, disable api key resource generation even if specified as an auth rule on the construct.\n\nThis is a legacy parameter from the Graphql Transformer existing in Amplify CLI, not recommended to change.\n\n---\n\n##### `useSubUsernameForDefaultIdentityClaim`<sup>Optional</sup> <a name=\"useSubUsernameForDefaultIdentityClaim\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.useSubUsernameForDefaultIdentityClaim\"></a>\n\n```typescript\npublic readonly useSubUsernameForDefaultIdentityClaim: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnsure that oidc and userPool auth use the `sub` field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool.\n\n---\n\n### QueryFunctionSlot <a name=\"QueryFunctionSlot\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot\"></a>\n\nSlot types for Query Resolvers.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.Initializer\"></a>\n\n```typescript\nimport { QueryFunctionSlot } from '@aws-amplify/graphql-api-construct'\n\nconst queryFunctionSlot: QueryFunctionSlot = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.fieldName\">fieldName</a></code> | <code>string</code> | The field to attach this function to on the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.function\">function</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a></code> | The overridden behavior for this slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.slotIndex\">slotIndex</a></code> | <code>number</code> | The slot index to use to inject this into the execution pipeline. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.slotName\">slotName</a></code> | <code>string</code> | The slot name to inject this behavior into. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.typeName\">typeName</a></code> | <code>string</code> | This slot type applies to the Query type on the Api definition. |\n\n---\n\n##### `fieldName`<sup>Required</sup> <a name=\"fieldName\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.fieldName\"></a>\n\n```typescript\npublic readonly fieldName: string;\n```\n\n- *Type:* string\n\nThe field to attach this function to on the Api definition.\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.function\"></a>\n\n```typescript\npublic readonly function: FunctionSlotOverride;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a>\n\nThe overridden behavior for this slot.\n\n---\n\n##### `slotIndex`<sup>Required</sup> <a name=\"slotIndex\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.slotIndex\"></a>\n\n```typescript\npublic readonly slotIndex: number;\n```\n\n- *Type:* number\n\nThe slot index to use to inject this into the execution pipeline.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `slotName`<sup>Required</sup> <a name=\"slotName\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.slotName\"></a>\n\n```typescript\npublic readonly slotName: string;\n```\n\n- *Type:* string\n\nThe slot name to inject this behavior into.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `typeName`<sup>Required</sup> <a name=\"typeName\" id=\"@aws-amplify/graphql-api-construct.QueryFunctionSlot.property.typeName\"></a>\n\n```typescript\npublic readonly typeName: string;\n```\n\n- *Type:* string\n\nThis slot type applies to the Query type on the Api definition.\n\n---\n\n### SubscriptionFunctionSlot <a name=\"SubscriptionFunctionSlot\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\"></a>\n\nSlot types for Subscription Resolvers.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.Initializer\"></a>\n\n```typescript\nimport { SubscriptionFunctionSlot } from '@aws-amplify/graphql-api-construct'\n\nconst subscriptionFunctionSlot: SubscriptionFunctionSlot = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.fieldName\">fieldName</a></code> | <code>string</code> | The field to attach this function to on the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.function\">function</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a></code> | The overridden behavior for this slot. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.slotIndex\">slotIndex</a></code> | <code>number</code> | The slot index to use to inject this into the execution pipeline. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.slotName\">slotName</a></code> | <code>string</code> | The slot name to inject this behavior into. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.typeName\">typeName</a></code> | <code>string</code> | This slot type applies to the Subscription type on the Api definition. |\n\n---\n\n##### `fieldName`<sup>Required</sup> <a name=\"fieldName\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.fieldName\"></a>\n\n```typescript\npublic readonly fieldName: string;\n```\n\n- *Type:* string\n\nThe field to attach this function to on the Api definition.\n\n---\n\n##### `function`<sup>Required</sup> <a name=\"function\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.function\"></a>\n\n```typescript\npublic readonly function: FunctionSlotOverride;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.FunctionSlotOverride\">FunctionSlotOverride</a>\n\nThe overridden behavior for this slot.\n\n---\n\n##### `slotIndex`<sup>Required</sup> <a name=\"slotIndex\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.slotIndex\"></a>\n\n```typescript\npublic readonly slotIndex: number;\n```\n\n- *Type:* number\n\nThe slot index to use to inject this into the execution pipeline.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `slotName`<sup>Required</sup> <a name=\"slotName\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.slotName\"></a>\n\n```typescript\npublic readonly slotName: string;\n```\n\n- *Type:* string\n\nThe slot name to inject this behavior into.\n\nFor more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers\n\n---\n\n##### `typeName`<sup>Required</sup> <a name=\"typeName\" id=\"@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot.property.typeName\"></a>\n\n```typescript\npublic readonly typeName: string;\n```\n\n- *Type:* string\n\nThis slot type applies to the Subscription type on the Api definition.\n\n---\n\n### TranslationBehavior <a name=\"TranslationBehavior\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior\"></a>\n\nStrongly typed set of shared parameters for all transformers, and core layer.\n\nThis is intended to replace feature flags, to ensure param coercion happens in\na single location, and isn't spread around the transformers, where they can\nhave different default behaviors.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.Initializer\"></a>\n\n```typescript\nimport { TranslationBehavior } from '@aws-amplify/graphql-api-construct'\n\nconst translationBehavior: TranslationBehavior = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.disableResolverDeduping\">disableResolverDeduping</a></code> | <code>boolean</code> | Disable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableAutoIndexQueryNames\">enableAutoIndexQueryNames</a></code> | <code>boolean</code> | Automate generation of query names, and as a result attaching all indexes as queries to the generated Api. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableSearchNodeToNodeEncryption\">enableSearchNodeToNodeEncryption</a></code> | <code>boolean</code> | If enabled, set nodeToNodeEncryption on the searchable domain (if one exists). |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableTransformerCfnOutputs\">enableTransformerCfnOutputs</a></code> | <code>boolean</code> | When enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.populateOwnerFieldForStaticGroupAuth\">populateOwnerFieldForStaticGroupAuth</a></code> | <code>boolean</code> | Ensure that the owner field is still populated even if a static iam or group authorization applies. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.respectPrimaryKeyAttributesOnConnectionField\">respectPrimaryKeyAttributesOnConnectionField</a></code> | <code>boolean</code> | Enable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.sandboxModeEnabled\">sandboxModeEnabled</a></code> | <code>boolean</code> | Enabling sandbox mode will enable api key auth on all models in the transformed schema. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.secondaryKeyAsGSI\">secondaryKeyAsGSI</a></code> | <code>boolean</code> | If disabled, generated. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.shouldDeepMergeDirectiveConfigDefaults\">shouldDeepMergeDirectiveConfigDefaults</a></code> | <code>boolean</code> | Restore parity w/ GQLv1. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.suppressApiKeyGeneration\">suppressApiKeyGeneration</a></code> | <code>boolean</code> | If enabled, disable api key resource generation even if specified as an auth rule on the construct. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TranslationBehavior.property.useSubUsernameForDefaultIdentityClaim\">useSubUsernameForDefaultIdentityClaim</a></code> | <code>boolean</code> | Ensure that oidc and userPool auth use the `sub` field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool. |\n\n---\n\n##### `disableResolverDeduping`<sup>Required</sup> <a name=\"disableResolverDeduping\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.disableResolverDeduping\"></a>\n\n```typescript\npublic readonly disableResolverDeduping: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nDisable resolver deduping, this can sometimes cause problems because dedupe ordering isn't stable today, which can lead to circular dependencies across stacks if models are reordered.\n\n---\n\n##### `enableAutoIndexQueryNames`<sup>Required</sup> <a name=\"enableAutoIndexQueryNames\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableAutoIndexQueryNames\"></a>\n\n```typescript\npublic readonly enableAutoIndexQueryNames: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nAutomate generation of query names, and as a result attaching all indexes as queries to the generated Api.\n\nIf enabled,\n\n---\n\n##### `enableSearchNodeToNodeEncryption`<sup>Required</sup> <a name=\"enableSearchNodeToNodeEncryption\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableSearchNodeToNodeEncryption\"></a>\n\n```typescript\npublic readonly enableSearchNodeToNodeEncryption: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nIf enabled, set nodeToNodeEncryption on the searchable domain (if one exists).\n\nNot recommended for use, prefer\nto use `Object.values(resources.additionalResources['AWS::Elasticsearch::Domain']).forEach((domain: CfnDomain) => {\n domain.NodeToNodeEncryptionOptions = { Enabled: True };\n});\n\n---\n\n##### `enableTransformerCfnOutputs`<sup>Required</sup> <a name=\"enableTransformerCfnOutputs\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.enableTransformerCfnOutputs\"></a>\n\n```typescript\npublic readonly enableTransformerCfnOutputs: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nWhen enabled, internal cfn outputs which existed in Amplify-generated apps will continue to be emitted.\n\n---\n\n##### `populateOwnerFieldForStaticGroupAuth`<sup>Required</sup> <a name=\"populateOwnerFieldForStaticGroupAuth\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.populateOwnerFieldForStaticGroupAuth\"></a>\n\n```typescript\npublic readonly populateOwnerFieldForStaticGroupAuth: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnsure that the owner field is still populated even if a static iam or group authorization applies.\n\n---\n\n##### `respectPrimaryKeyAttributesOnConnectionField`<sup>Required</sup> <a name=\"respectPrimaryKeyAttributesOnConnectionField\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.respectPrimaryKeyAttributesOnConnectionField\"></a>\n\n```typescript\npublic readonly respectPrimaryKeyAttributesOnConnectionField: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnable custom primary key support, there's no good reason to disable this unless trying not to update a legacy app.\n\n---\n\n##### `sandboxModeEnabled`<sup>Required</sup> <a name=\"sandboxModeEnabled\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.sandboxModeEnabled\"></a>\n\n```typescript\npublic readonly sandboxModeEnabled: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nEnabling sandbox mode will enable api key auth on all models in the transformed schema.\n\n---\n\n##### `secondaryKeyAsGSI`<sup>Required</sup> <a name=\"secondaryKeyAsGSI\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.secondaryKeyAsGSI\"></a>\n\n```typescript\npublic readonly secondaryKeyAsGSI: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nIf disabled, generated.\n\n---\n\n##### `shouldDeepMergeDirectiveConfigDefaults`<sup>Required</sup> <a name=\"shouldDeepMergeDirectiveConfigDefaults\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.shouldDeepMergeDirectiveConfigDefaults\"></a>\n\n```typescript\npublic readonly shouldDeepMergeDirectiveConfigDefaults: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nRestore parity w/ GQLv1.\n\n---\n\n##### `suppressApiKeyGeneration`<sup>Required</sup> <a name=\"suppressApiKeyGeneration\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.suppressApiKeyGeneration\"></a>\n\n```typescript\npublic readonly suppressApiKeyGeneration: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nIf enabled, disable api key resource generation even if specified as an auth rule on the construct.\n\nThis is a legacy parameter from the Graphql Transformer existing in Amplify CLI, not recommended to change.\n\n---\n\n##### `useSubUsernameForDefaultIdentityClaim`<sup>Required</sup> <a name=\"useSubUsernameForDefaultIdentityClaim\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.useSubUsernameForDefaultIdentityClaim\"></a>\n\n```typescript\npublic readonly useSubUsernameForDefaultIdentityClaim: boolean;\n```\n\n- *Type:* boolean\n- *Default:* true\n\nEnsure that oidc and userPool auth use the `sub` field in the for the username field, which disallows new users with the same id to access data from a deleted user in the pool.\n\n---\n\n### UserPoolAuthorizationConfig <a name=\"UserPoolAuthorizationConfig\" id=\"@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig\"></a>\n\nConfiguration for Cognito UserPool Authorization on the Graphql Api.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig.Initializer\"></a>\n\n```typescript\nimport { UserPoolAuthorizationConfig } from '@aws-amplify/graphql-api-construct'\n\nconst userPoolAuthorizationConfig: UserPoolAuthorizationConfig = { ... }\n```\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig.property.userPool\">userPool</a></code> | <code>aws-cdk-lib.aws_cognito.IUserPool</code> | The Cognito User Pool which is used to authenticated JWT tokens, and vends group and user information. |\n\n---\n\n##### `userPool`<sup>Required</sup> <a name=\"userPool\" id=\"@aws-amplify/graphql-api-construct.UserPoolAuthorizationConfig.property.userPool\"></a>\n\n```typescript\npublic readonly userPool: IUserPool;\n```\n\n- *Type:* aws-cdk-lib.aws_cognito.IUserPool\n\nThe Cognito User Pool which is used to authenticated JWT tokens, and vends group and user information.\n\n---\n\n## Classes <a name=\"Classes\" id=\"Classes\"></a>\n\n### AmplifyGraphqlDefinition <a name=\"AmplifyGraphqlDefinition\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition\"></a>\n\nClass exposing utilities to produce IAmplifyGraphqlDefinition objects given various inputs.\n\n#### Initializers <a name=\"Initializers\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.Initializer\"></a>\n\n```typescript\nimport { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'\n\nnew AmplifyGraphqlDefinition()\n```\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n\n---\n\n\n#### Static Functions <a name=\"Static Functions\" id=\"Static Functions\"></a>\n\n| **Name** | **Description** |\n| --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFiles\">fromFiles</a></code> | Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromString\">fromString</a></code> | Produce a schema definition from a string input. |\n\n---\n\n##### `fromFiles` <a name=\"fromFiles\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFiles\"></a>\n\n```typescript\nimport { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'\n\nAmplifyGraphqlDefinition.fromFiles(filePaths: string)\n```\n\nConvert one or more appsync SchemaFile objects into an Amplify Graphql Schema.\n\n###### `filePaths`<sup>Required</sup> <a name=\"filePaths\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFiles.parameter.filePaths\"></a>\n\n- *Type:* string\n\none or more paths to the graphql files to process.\n\n---\n\n##### `fromString` <a name=\"fromString\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromString\"></a>\n\n```typescript\nimport { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'\n\nAmplifyGraphqlDefinition.fromString(schema: string)\n```\n\nProduce a schema definition from a string input.\n\n###### `schema`<sup>Required</sup> <a name=\"schema\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromString.parameter.schema\"></a>\n\n- *Type:* string\n\nthe graphql input as a string.\n\n---\n\n\n\n## Protocols <a name=\"Protocols\" id=\"Protocols\"></a>\n\n### IAmplifyGraphqlDefinition <a name=\"IAmplifyGraphqlDefinition\" id=\"@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition\"></a>\n\n- *Implemented By:* <a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition\">IAmplifyGraphqlDefinition</a>\n\nGraphql Api definition, which can be implemented in multiple ways.\n\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.functionSlots\">functionSlots</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]</code> | Retrieve any function slots defined explicitly in the Api definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.schema\">schema</a></code> | <code>string</code> | Return the schema definition as a graphql string, with amplify directives allowed. |\n\n---\n\n##### `functionSlots`<sup>Required</sup> <a name=\"functionSlots\" id=\"@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.functionSlots\"></a>\n\n```typescript\npublic readonly functionSlots: MutationFunctionSlot | QueryFunctionSlot | SubscriptionFunctionSlot[];\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.MutationFunctionSlot\">MutationFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.QueryFunctionSlot\">QueryFunctionSlot</a> | <a href=\"#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot\">SubscriptionFunctionSlot</a>[]\n\nRetrieve any function slots defined explicitly in the Api definition.\n\n---\n\n##### `schema`<sup>Required</sup> <a name=\"schema\" id=\"@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.schema\"></a>\n\n```typescript\npublic readonly schema: string;\n```\n\n- *Type:* string\n\nReturn the schema definition as a graphql string, with amplify directives allowed.\n\n---\n\n### IBackendOutputEntry <a name=\"IBackendOutputEntry\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputEntry\"></a>\n\n- *Implemented By:* <a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputEntry\">IBackendOutputEntry</a>\n\nEntry representing the required output from the backend for codegen generate commands to work.\n\n\n#### Properties <a name=\"Properties\" id=\"Properties\"></a>\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputEntry.property.payload\">payload</a></code> | <code>{[ key: string ]: string}</code> | The string-map payload of generated config values. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputEntry.property.version\">version</a></code> | <code>string</code> | The protocol version for this backend output. |\n\n---\n\n##### `payload`<sup>Required</sup> <a name=\"payload\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputEntry.property.payload\"></a>\n\n```typescript\npublic readonly payload: {[ key: string ]: string};\n```\n\n- *Type:* {[ key: string ]: string}\n\nThe string-map payload of generated config values.\n\n---\n\n##### `version`<sup>Required</sup> <a name=\"version\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputEntry.property.version\"></a>\n\n```typescript\npublic readonly version: string;\n```\n\n- *Type:* string\n\nThe protocol version for this backend output.\n\n---\n\n### IBackendOutputStorageStrategy <a name=\"IBackendOutputStorageStrategy\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy\"></a>\n\n- *Implemented By:* <a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy\">IBackendOutputStorageStrategy</a>\n\nBackend output strategy used to write config required for codegen tasks.\n\n#### Methods <a name=\"Methods\" id=\"Methods\"></a>\n\n| **Name** | **Description** |\n| --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy.addBackendOutputEntry\">addBackendOutputEntry</a></code> | Add an entry to backend output. |\n\n---\n\n##### `addBackendOutputEntry` <a name=\"addBackendOutputEntry\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy.addBackendOutputEntry\"></a>\n\n```typescript\npublic addBackendOutputEntry(keyName: string, backendOutputEntry: IBackendOutputEntry): void\n```\n\nAdd an entry to backend output.\n\n###### `keyName`<sup>Required</sup> <a name=\"keyName\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy.addBackendOutputEntry.parameter.keyName\"></a>\n\n- *Type:* string\n\nthe key.\n\n---\n\n###### `backendOutputEntry`<sup>Required</sup> <a name=\"backendOutputEntry\" id=\"@aws-amplify/graphql-api-construct.IBackendOutputStorageStrategy.addBackendOutputEntry.parameter.backendOutputEntry\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.IBackendOutputEntry\">IBackendOutputEntry</a>\n\nthe record to store in the backend output.\n\n---\n\n\n"
3512
3512
  },
3513
3513
  "repository": {
3514
3514
  "directory": "packages/amplify-graphql-api-construct",
@@ -3533,7 +3533,7 @@
3533
3533
  "kind": "interface",
3534
3534
  "locationInModule": {
3535
3535
  "filename": "src/types.ts",
3536
- "line": 705
3536
+ "line": 706
3537
3537
  },
3538
3538
  "name": "AddFunctionProps",
3539
3539
  "properties": [
@@ -3546,7 +3546,7 @@
3546
3546
  "immutable": true,
3547
3547
  "locationInModule": {
3548
3548
  "filename": "src/types.ts",
3549
- "line": 709
3549
+ "line": 710
3550
3550
  },
3551
3551
  "name": "dataSource",
3552
3552
  "type": {
@@ -3562,7 +3562,7 @@
3562
3562
  "immutable": true,
3563
3563
  "locationInModule": {
3564
3564
  "filename": "src/types.ts",
3565
- "line": 714
3565
+ "line": 715
3566
3566
  },
3567
3567
  "name": "name",
3568
3568
  "type": {
@@ -3579,7 +3579,7 @@
3579
3579
  "immutable": true,
3580
3580
  "locationInModule": {
3581
3581
  "filename": "src/types.ts",
3582
- "line": 749
3582
+ "line": 750
3583
3583
  },
3584
3584
  "name": "code",
3585
3585
  "optional": true,
@@ -3597,7 +3597,7 @@
3597
3597
  "immutable": true,
3598
3598
  "locationInModule": {
3599
3599
  "filename": "src/types.ts",
3600
- "line": 721
3600
+ "line": 722
3601
3601
  },
3602
3602
  "name": "description",
3603
3603
  "optional": true,
@@ -3615,7 +3615,7 @@
3615
3615
  "immutable": true,
3616
3616
  "locationInModule": {
3617
3617
  "filename": "src/types.ts",
3618
- "line": 728
3618
+ "line": 729
3619
3619
  },
3620
3620
  "name": "requestMappingTemplate",
3621
3621
  "optional": true,
@@ -3633,7 +3633,7 @@
3633
3633
  "immutable": true,
3634
3634
  "locationInModule": {
3635
3635
  "filename": "src/types.ts",
3636
- "line": 735
3636
+ "line": 736
3637
3637
  },
3638
3638
  "name": "responseMappingTemplate",
3639
3639
  "optional": true,
@@ -3651,7 +3651,7 @@
3651
3651
  "immutable": true,
3652
3652
  "locationInModule": {
3653
3653
  "filename": "src/types.ts",
3654
- "line": 742
3654
+ "line": 743
3655
3655
  },
3656
3656
  "name": "runtime",
3657
3657
  "optional": true,
@@ -4296,7 +4296,7 @@
4296
4296
  "kind": "interface",
4297
4297
  "locationInModule": {
4298
4298
  "filename": "src/types.ts",
4299
- "line": 613
4299
+ "line": 614
4300
4300
  },
4301
4301
  "name": "AmplifyGraphqlApiCfnResources",
4302
4302
  "properties": [
@@ -4309,7 +4309,7 @@
4309
4309
  "immutable": true,
4310
4310
  "locationInModule": {
4311
4311
  "filename": "src/types.ts",
4312
- "line": 662
4312
+ "line": 663
4313
4313
  },
4314
4314
  "name": "additionalCfnResources",
4315
4315
  "type": {
@@ -4330,7 +4330,7 @@
4330
4330
  "immutable": true,
4331
4331
  "locationInModule": {
4332
4332
  "filename": "src/types.ts",
4333
- "line": 642
4333
+ "line": 643
4334
4334
  },
4335
4335
  "name": "cfnDataSources",
4336
4336
  "type": {
@@ -4351,7 +4351,7 @@
4351
4351
  "immutable": true,
4352
4352
  "locationInModule": {
4353
4353
  "filename": "src/types.ts",
4354
- "line": 637
4354
+ "line": 638
4355
4355
  },
4356
4356
  "name": "cfnFunctionConfigurations",
4357
4357
  "type": {
@@ -4372,7 +4372,7 @@
4372
4372
  "immutable": true,
4373
4373
  "locationInModule": {
4374
4374
  "filename": "src/types.ts",
4375
- "line": 657
4375
+ "line": 658
4376
4376
  },
4377
4377
  "name": "cfnFunctions",
4378
4378
  "type": {
@@ -4393,7 +4393,7 @@
4393
4393
  "immutable": true,
4394
4394
  "locationInModule": {
4395
4395
  "filename": "src/types.ts",
4396
- "line": 617
4396
+ "line": 618
4397
4397
  },
4398
4398
  "name": "cfnGraphqlApi",
4399
4399
  "type": {
@@ -4409,7 +4409,7 @@
4409
4409
  "immutable": true,
4410
4410
  "locationInModule": {
4411
4411
  "filename": "src/types.ts",
4412
- "line": 622
4412
+ "line": 623
4413
4413
  },
4414
4414
  "name": "cfnGraphqlSchema",
4415
4415
  "type": {
@@ -4425,7 +4425,7 @@
4425
4425
  "immutable": true,
4426
4426
  "locationInModule": {
4427
4427
  "filename": "src/types.ts",
4428
- "line": 632
4428
+ "line": 633
4429
4429
  },
4430
4430
  "name": "cfnResolvers",
4431
4431
  "type": {
@@ -4446,7 +4446,7 @@
4446
4446
  "immutable": true,
4447
4447
  "locationInModule": {
4448
4448
  "filename": "src/types.ts",
4449
- "line": 652
4449
+ "line": 653
4450
4450
  },
4451
4451
  "name": "cfnRoles",
4452
4452
  "type": {
@@ -4467,7 +4467,7 @@
4467
4467
  "immutable": true,
4468
4468
  "locationInModule": {
4469
4469
  "filename": "src/types.ts",
4470
- "line": 647
4470
+ "line": 648
4471
4471
  },
4472
4472
  "name": "cfnTables",
4473
4473
  "type": {
@@ -4488,7 +4488,7 @@
4488
4488
  "immutable": true,
4489
4489
  "locationInModule": {
4490
4490
  "filename": "src/types.ts",
4491
- "line": 627
4491
+ "line": 628
4492
4492
  },
4493
4493
  "name": "cfnApiKey",
4494
4494
  "optional": true,
@@ -4511,7 +4511,7 @@
4511
4511
  "kind": "interface",
4512
4512
  "locationInModule": {
4513
4513
  "filename": "src/types.ts",
4514
- "line": 537
4514
+ "line": 538
4515
4515
  },
4516
4516
  "name": "AmplifyGraphqlApiProps",
4517
4517
  "properties": [
@@ -4525,7 +4525,7 @@
4525
4525
  "immutable": true,
4526
4526
  "locationInModule": {
4527
4527
  "filename": "src/types.ts",
4528
- "line": 554
4528
+ "line": 555
4529
4529
  },
4530
4530
  "name": "authorizationModes",
4531
4531
  "type": {
@@ -4542,7 +4542,7 @@
4542
4542
  "immutable": true,
4543
4543
  "locationInModule": {
4544
4544
  "filename": "src/types.ts",
4545
- "line": 542
4545
+ "line": 543
4546
4546
  },
4547
4547
  "name": "definition",
4548
4548
  "type": {
@@ -4559,7 +4559,7 @@
4559
4559
  "immutable": true,
4560
4560
  "locationInModule": {
4561
4561
  "filename": "src/types.ts",
4562
- "line": 548
4562
+ "line": 549
4563
4563
  },
4564
4564
  "name": "apiName",
4565
4565
  "optional": true,
@@ -4577,7 +4577,7 @@
4577
4577
  "immutable": true,
4578
4578
  "locationInModule": {
4579
4579
  "filename": "src/types.ts",
4580
- "line": 568
4580
+ "line": 569
4581
4581
  },
4582
4582
  "name": "conflictResolution",
4583
4583
  "optional": true,
@@ -4597,7 +4597,7 @@
4597
4597
  "immutable": true,
4598
4598
  "locationInModule": {
4599
4599
  "filename": "src/types.ts",
4600
- "line": 562
4600
+ "line": 563
4601
4601
  },
4602
4602
  "name": "functionNameMap",
4603
4603
  "optional": true,
@@ -4620,7 +4620,7 @@
4620
4620
  "immutable": true,
4621
4621
  "locationInModule": {
4622
4622
  "filename": "src/types.ts",
4623
- "line": 583
4623
+ "line": 584
4624
4624
  },
4625
4625
  "name": "functionSlots",
4626
4626
  "optional": true,
@@ -4655,7 +4655,7 @@
4655
4655
  "immutable": true,
4656
4656
  "locationInModule": {
4657
4657
  "filename": "src/types.ts",
4658
- "line": 606
4658
+ "line": 607
4659
4659
  },
4660
4660
  "name": "outputStorageStrategy",
4661
4661
  "optional": true,
@@ -4672,7 +4672,7 @@
4672
4672
  "immutable": true,
4673
4673
  "locationInModule": {
4674
4674
  "filename": "src/types.ts",
4675
- "line": 595
4675
+ "line": 596
4676
4676
  },
4677
4677
  "name": "predictionsBucket",
4678
4678
  "optional": true,
@@ -4690,7 +4690,7 @@
4690
4690
  "immutable": true,
4691
4691
  "locationInModule": {
4692
4692
  "filename": "src/types.ts",
4693
- "line": 577
4693
+ "line": 578
4694
4694
  },
4695
4695
  "name": "stackMappings",
4696
4696
  "optional": true,
@@ -4716,7 +4716,7 @@
4716
4716
  "immutable": true,
4717
4717
  "locationInModule": {
4718
4718
  "filename": "src/types.ts",
4719
- "line": 590
4719
+ "line": 591
4720
4720
  },
4721
4721
  "name": "transformerPlugins",
4722
4722
  "optional": true,
@@ -4738,7 +4738,7 @@
4738
4738
  "immutable": true,
4739
4739
  "locationInModule": {
4740
4740
  "filename": "src/types.ts",
4741
- "line": 601
4741
+ "line": 602
4742
4742
  },
4743
4743
  "name": "translationBehavior",
4744
4744
  "optional": true,
@@ -4761,7 +4761,7 @@
4761
4761
  "kind": "interface",
4762
4762
  "locationInModule": {
4763
4763
  "filename": "src/types.ts",
4764
- "line": 669
4764
+ "line": 670
4765
4765
  },
4766
4766
  "name": "AmplifyGraphqlApiResources",
4767
4767
  "properties": [
@@ -4774,7 +4774,7 @@
4774
4774
  "immutable": true,
4775
4775
  "locationInModule": {
4776
4776
  "filename": "src/types.ts",
4777
- "line": 693
4777
+ "line": 694
4778
4778
  },
4779
4779
  "name": "cfnResources",
4780
4780
  "type": {
@@ -4790,7 +4790,7 @@
4790
4790
  "immutable": true,
4791
4791
  "locationInModule": {
4792
4792
  "filename": "src/types.ts",
4793
- "line": 688
4793
+ "line": 689
4794
4794
  },
4795
4795
  "name": "functions",
4796
4796
  "type": {
@@ -4811,7 +4811,7 @@
4811
4811
  "immutable": true,
4812
4812
  "locationInModule": {
4813
4813
  "filename": "src/types.ts",
4814
- "line": 673
4814
+ "line": 674
4815
4815
  },
4816
4816
  "name": "graphqlApi",
4817
4817
  "type": {
@@ -4827,7 +4827,7 @@
4827
4827
  "immutable": true,
4828
4828
  "locationInModule": {
4829
4829
  "filename": "src/types.ts",
4830
- "line": 698
4830
+ "line": 699
4831
4831
  },
4832
4832
  "name": "nestedStacks",
4833
4833
  "type": {
@@ -4848,7 +4848,7 @@
4848
4848
  "immutable": true,
4849
4849
  "locationInModule": {
4850
4850
  "filename": "src/types.ts",
4851
- "line": 683
4851
+ "line": 684
4852
4852
  },
4853
4853
  "name": "roles",
4854
4854
  "type": {
@@ -4869,7 +4869,7 @@
4869
4869
  "immutable": true,
4870
4870
  "locationInModule": {
4871
4871
  "filename": "src/types.ts",
4872
- "line": 678
4872
+ "line": 679
4873
4873
  },
4874
4874
  "name": "tables",
4875
4875
  "type": {
@@ -4977,7 +4977,7 @@
4977
4977
  "kind": "interface",
4978
4978
  "locationInModule": {
4979
4979
  "filename": "src/types.ts",
4980
- "line": 88
4980
+ "line": 89
4981
4981
  },
4982
4982
  "name": "ApiKeyAuthorizationConfig",
4983
4983
  "properties": [
@@ -4990,7 +4990,7 @@
4990
4990
  "immutable": true,
4991
4991
  "locationInModule": {
4992
4992
  "filename": "src/types.ts",
4993
- "line": 97
4993
+ "line": 98
4994
4994
  },
4995
4995
  "name": "expires",
4996
4996
  "type": {
@@ -5006,7 +5006,7 @@
5006
5006
  "immutable": true,
5007
5007
  "locationInModule": {
5008
5008
  "filename": "src/types.ts",
5009
- "line": 92
5009
+ "line": 93
5010
5010
  },
5011
5011
  "name": "description",
5012
5012
  "optional": true,
@@ -5029,7 +5029,7 @@
5029
5029
  "kind": "interface",
5030
5030
  "locationInModule": {
5031
5031
  "filename": "src/types.ts",
5032
- "line": 120
5032
+ "line": 121
5033
5033
  },
5034
5034
  "name": "AuthorizationModes",
5035
5035
  "properties": [
@@ -5042,7 +5042,7 @@
5042
5042
  "immutable": true,
5043
5043
  "locationInModule": {
5044
5044
  "filename": "src/types.ts",
5045
- "line": 159
5045
+ "line": 160
5046
5046
  },
5047
5047
  "name": "adminRoles",
5048
5048
  "optional": true,
@@ -5065,7 +5065,7 @@
5065
5065
  "immutable": true,
5066
5066
  "locationInModule": {
5067
5067
  "filename": "src/types.ts",
5068
- "line": 148
5068
+ "line": 149
5069
5069
  },
5070
5070
  "name": "apiKeyConfig",
5071
5071
  "optional": true,
@@ -5082,7 +5082,7 @@
5082
5082
  "immutable": true,
5083
5083
  "locationInModule": {
5084
5084
  "filename": "src/types.ts",
5085
- "line": 124
5085
+ "line": 125
5086
5086
  },
5087
5087
  "name": "defaultAuthorizationMode",
5088
5088
  "optional": true,
@@ -5100,7 +5100,7 @@
5100
5100
  "immutable": true,
5101
5101
  "locationInModule": {
5102
5102
  "filename": "src/types.ts",
5103
- "line": 130
5103
+ "line": 131
5104
5104
  },
5105
5105
  "name": "iamConfig",
5106
5106
  "optional": true,
@@ -5118,7 +5118,7 @@
5118
5118
  "immutable": true,
5119
5119
  "locationInModule": {
5120
5120
  "filename": "src/types.ts",
5121
- "line": 154
5121
+ "line": 155
5122
5122
  },
5123
5123
  "name": "lambdaConfig",
5124
5124
  "optional": true,
@@ -5136,7 +5136,7 @@
5136
5136
  "immutable": true,
5137
5137
  "locationInModule": {
5138
5138
  "filename": "src/types.ts",
5139
- "line": 142
5139
+ "line": 143
5140
5140
  },
5141
5141
  "name": "oidcConfig",
5142
5142
  "optional": true,
@@ -5154,7 +5154,7 @@
5154
5154
  "immutable": true,
5155
5155
  "locationInModule": {
5156
5156
  "filename": "src/types.ts",
5157
- "line": 136
5157
+ "line": 137
5158
5158
  },
5159
5159
  "name": "userPoolConfig",
5160
5160
  "optional": true,
@@ -5179,7 +5179,7 @@
5179
5179
  "kind": "interface",
5180
5180
  "locationInModule": {
5181
5181
  "filename": "src/types.ts",
5182
- "line": 180
5182
+ "line": 181
5183
5183
  },
5184
5184
  "name": "AutomergeConflictResolutionStrategy",
5185
5185
  "properties": [
@@ -5193,7 +5193,7 @@
5193
5193
  "immutable": true,
5194
5194
  "locationInModule": {
5195
5195
  "filename": "src/types.ts",
5196
- "line": 185
5196
+ "line": 186
5197
5197
  },
5198
5198
  "name": "handlerType",
5199
5199
  "type": {
@@ -5214,7 +5214,7 @@
5214
5214
  "kind": "interface",
5215
5215
  "locationInModule": {
5216
5216
  "filename": "src/types.ts",
5217
- "line": 227
5217
+ "line": 228
5218
5218
  },
5219
5219
  "name": "ConflictResolution",
5220
5220
  "properties": [
@@ -5227,7 +5227,7 @@
5227
5227
  "immutable": true,
5228
5228
  "locationInModule": {
5229
5229
  "filename": "src/types.ts",
5230
- "line": 236
5230
+ "line": 237
5231
5231
  },
5232
5232
  "name": "models",
5233
5233
  "optional": true,
@@ -5262,7 +5262,7 @@
5262
5262
  "immutable": true,
5263
5263
  "locationInModule": {
5264
5264
  "filename": "src/types.ts",
5265
- "line": 231
5265
+ "line": 232
5266
5266
  },
5267
5267
  "name": "project",
5268
5268
  "optional": true,
@@ -5296,7 +5296,7 @@
5296
5296
  "kind": "interface",
5297
5297
  "locationInModule": {
5298
5298
  "filename": "src/types.ts",
5299
- "line": 170
5299
+ "line": 171
5300
5300
  },
5301
5301
  "name": "ConflictResolutionStrategyBase",
5302
5302
  "properties": [
@@ -5309,7 +5309,7 @@
5309
5309
  "immutable": true,
5310
5310
  "locationInModule": {
5311
5311
  "filename": "src/types.ts",
5312
- "line": 174
5312
+ "line": 175
5313
5313
  },
5314
5314
  "name": "detectionType",
5315
5315
  "type": {
@@ -5333,7 +5333,7 @@
5333
5333
  "kind": "interface",
5334
5334
  "locationInModule": {
5335
5335
  "filename": "src/types.ts",
5336
- "line": 202
5336
+ "line": 203
5337
5337
  },
5338
5338
  "name": "CustomConflictResolutionStrategy",
5339
5339
  "properties": [
@@ -5346,7 +5346,7 @@
5346
5346
  "immutable": true,
5347
5347
  "locationInModule": {
5348
5348
  "filename": "src/types.ts",
5349
- "line": 213
5349
+ "line": 214
5350
5350
  },
5351
5351
  "name": "conflictHandler",
5352
5352
  "type": {
@@ -5363,7 +5363,7 @@
5363
5363
  "immutable": true,
5364
5364
  "locationInModule": {
5365
5365
  "filename": "src/types.ts",
5366
- "line": 208
5366
+ "line": 209
5367
5367
  },
5368
5368
  "name": "handlerType",
5369
5369
  "type": {
@@ -5384,7 +5384,7 @@
5384
5384
  "kind": "interface",
5385
5385
  "locationInModule": {
5386
5386
  "filename": "src/types.ts",
5387
- "line": 258
5387
+ "line": 259
5388
5388
  },
5389
5389
  "name": "FunctionSlotBase",
5390
5390
  "properties": [
@@ -5397,7 +5397,7 @@
5397
5397
  "immutable": true,
5398
5398
  "locationInModule": {
5399
5399
  "filename": "src/types.ts",
5400
- "line": 262
5400
+ "line": 263
5401
5401
  },
5402
5402
  "name": "fieldName",
5403
5403
  "type": {
@@ -5413,7 +5413,7 @@
5413
5413
  "immutable": true,
5414
5414
  "locationInModule": {
5415
5415
  "filename": "src/types.ts",
5416
- "line": 273
5416
+ "line": 274
5417
5417
  },
5418
5418
  "name": "function",
5419
5419
  "type": {
@@ -5430,7 +5430,7 @@
5430
5430
  "immutable": true,
5431
5431
  "locationInModule": {
5432
5432
  "filename": "src/types.ts",
5433
- "line": 268
5433
+ "line": 269
5434
5434
  },
5435
5435
  "name": "slotIndex",
5436
5436
  "type": {
@@ -5452,7 +5452,7 @@
5452
5452
  "kind": "interface",
5453
5453
  "locationInModule": {
5454
5454
  "filename": "src/types.ts",
5455
- "line": 243
5455
+ "line": 244
5456
5456
  },
5457
5457
  "name": "FunctionSlotOverride",
5458
5458
  "properties": [
@@ -5466,7 +5466,7 @@
5466
5466
  "immutable": true,
5467
5467
  "locationInModule": {
5468
5468
  "filename": "src/types.ts",
5469
- "line": 247
5469
+ "line": 248
5470
5470
  },
5471
5471
  "name": "requestMappingTemplate",
5472
5472
  "optional": true,
@@ -5484,7 +5484,7 @@
5484
5484
  "immutable": true,
5485
5485
  "locationInModule": {
5486
5486
  "filename": "src/types.ts",
5487
- "line": 252
5487
+ "line": 253
5488
5488
  },
5489
5489
  "name": "responseMappingTemplate",
5490
5490
  "optional": true,
@@ -5519,7 +5519,7 @@
5519
5519
  "immutable": true,
5520
5520
  "locationInModule": {
5521
5521
  "filename": "src/types.ts",
5522
- "line": 34
5522
+ "line": 35
5523
5523
  },
5524
5524
  "name": "authenticatedUserRole",
5525
5525
  "type": {
@@ -5529,13 +5529,14 @@
5529
5529
  {
5530
5530
  "abstract": true,
5531
5531
  "docs": {
5532
+ "remarks": "Format: `<region>:<id string>`",
5532
5533
  "stability": "stable",
5533
5534
  "summary": "ID for the Cognito Identity Pool vending auth and unauth roles."
5534
5535
  },
5535
5536
  "immutable": true,
5536
5537
  "locationInModule": {
5537
5538
  "filename": "src/types.ts",
5538
- "line": 29
5539
+ "line": 30
5539
5540
  },
5540
5541
  "name": "identityPoolId",
5541
5542
  "type": {
@@ -5551,7 +5552,7 @@
5551
5552
  "immutable": true,
5552
5553
  "locationInModule": {
5553
5554
  "filename": "src/types.ts",
5554
- "line": 39
5555
+ "line": 40
5555
5556
  },
5556
5557
  "name": "unauthenticatedUserRole",
5557
5558
  "type": {
@@ -5571,7 +5572,7 @@
5571
5572
  "kind": "interface",
5572
5573
  "locationInModule": {
5573
5574
  "filename": "src/types.ts",
5574
- "line": 491
5575
+ "line": 492
5575
5576
  },
5576
5577
  "name": "IAmplifyGraphqlDefinition",
5577
5578
  "properties": [
@@ -5585,7 +5586,7 @@
5585
5586
  "immutable": true,
5586
5587
  "locationInModule": {
5587
5588
  "filename": "src/types.ts",
5588
- "line": 502
5589
+ "line": 503
5589
5590
  },
5590
5591
  "name": "functionSlots",
5591
5592
  "type": {
@@ -5619,7 +5620,7 @@
5619
5620
  "immutable": true,
5620
5621
  "locationInModule": {
5621
5622
  "filename": "src/types.ts",
5622
- "line": 496
5623
+ "line": 497
5623
5624
  },
5624
5625
  "name": "schema",
5625
5626
  "type": {
@@ -5639,7 +5640,7 @@
5639
5640
  "kind": "interface",
5640
5641
  "locationInModule": {
5641
5642
  "filename": "src/types.ts",
5642
- "line": 508
5643
+ "line": 509
5643
5644
  },
5644
5645
  "name": "IBackendOutputEntry",
5645
5646
  "properties": [
@@ -5652,7 +5653,7 @@
5652
5653
  "immutable": true,
5653
5654
  "locationInModule": {
5654
5655
  "filename": "src/types.ts",
5655
- "line": 517
5656
+ "line": 518
5656
5657
  },
5657
5658
  "name": "payload",
5658
5659
  "type": {
@@ -5673,7 +5674,7 @@
5673
5674
  "immutable": true,
5674
5675
  "locationInModule": {
5675
5676
  "filename": "src/types.ts",
5676
- "line": 512
5677
+ "line": 513
5677
5678
  },
5678
5679
  "name": "version",
5679
5680
  "type": {
@@ -5693,7 +5694,7 @@
5693
5694
  "kind": "interface",
5694
5695
  "locationInModule": {
5695
5696
  "filename": "src/types.ts",
5696
- "line": 523
5697
+ "line": 524
5697
5698
  },
5698
5699
  "methods": [
5699
5700
  {
@@ -5704,7 +5705,7 @@
5704
5705
  },
5705
5706
  "locationInModule": {
5706
5707
  "filename": "src/types.ts",
5707
- "line": 530
5708
+ "line": 531
5708
5709
  },
5709
5710
  "name": "addBackendOutputEntry",
5710
5711
  "parameters": [
@@ -5743,7 +5744,7 @@
5743
5744
  "kind": "interface",
5744
5745
  "locationInModule": {
5745
5746
  "filename": "src/types.ts",
5746
- "line": 103
5747
+ "line": 104
5747
5748
  },
5748
5749
  "name": "LambdaAuthorizationConfig",
5749
5750
  "properties": [
@@ -5756,7 +5757,7 @@
5756
5757
  "immutable": true,
5757
5758
  "locationInModule": {
5758
5759
  "filename": "src/types.ts",
5759
- "line": 107
5760
+ "line": 108
5760
5761
  },
5761
5762
  "name": "function",
5762
5763
  "type": {
@@ -5772,7 +5773,7 @@
5772
5773
  "immutable": true,
5773
5774
  "locationInModule": {
5774
5775
  "filename": "src/types.ts",
5775
- "line": 112
5776
+ "line": 113
5776
5777
  },
5777
5778
  "name": "ttl",
5778
5779
  "type": {
@@ -5796,7 +5797,7 @@
5796
5797
  "kind": "interface",
5797
5798
  "locationInModule": {
5798
5799
  "filename": "src/types.ts",
5799
- "line": 279
5800
+ "line": 280
5800
5801
  },
5801
5802
  "name": "MutationFunctionSlot",
5802
5803
  "properties": [
@@ -5810,7 +5811,7 @@
5810
5811
  "immutable": true,
5811
5812
  "locationInModule": {
5812
5813
  "filename": "src/types.ts",
5813
- "line": 289
5814
+ "line": 290
5814
5815
  },
5815
5816
  "name": "slotName",
5816
5817
  "type": {
@@ -5826,7 +5827,7 @@
5826
5827
  "immutable": true,
5827
5828
  "locationInModule": {
5828
5829
  "filename": "src/types.ts",
5829
- "line": 283
5830
+ "line": 284
5830
5831
  },
5831
5832
  "name": "typeName",
5832
5833
  "type": {
@@ -5847,7 +5848,7 @@
5847
5848
  "kind": "interface",
5848
5849
  "locationInModule": {
5849
5850
  "filename": "src/types.ts",
5850
- "line": 55
5851
+ "line": 56
5851
5852
  },
5852
5853
  "name": "OIDCAuthorizationConfig",
5853
5854
  "properties": [
@@ -5860,7 +5861,7 @@
5860
5861
  "immutable": true,
5861
5862
  "locationInModule": {
5862
5863
  "filename": "src/types.ts",
5863
- "line": 64
5864
+ "line": 65
5864
5865
  },
5865
5866
  "name": "oidcIssuerUrl",
5866
5867
  "type": {
@@ -5876,7 +5877,7 @@
5876
5877
  "immutable": true,
5877
5878
  "locationInModule": {
5878
5879
  "filename": "src/types.ts",
5879
- "line": 59
5880
+ "line": 60
5880
5881
  },
5881
5882
  "name": "oidcProviderName",
5882
5883
  "type": {
@@ -5893,7 +5894,7 @@
5893
5894
  "immutable": true,
5894
5895
  "locationInModule": {
5895
5896
  "filename": "src/types.ts",
5896
- "line": 76
5897
+ "line": 77
5897
5898
  },
5898
5899
  "name": "tokenExpiryFromAuth",
5899
5900
  "type": {
@@ -5910,7 +5911,7 @@
5910
5911
  "immutable": true,
5911
5912
  "locationInModule": {
5912
5913
  "filename": "src/types.ts",
5913
- "line": 82
5914
+ "line": 83
5914
5915
  },
5915
5916
  "name": "tokenExpiryFromIssue",
5916
5917
  "type": {
@@ -5927,7 +5928,7 @@
5927
5928
  "immutable": true,
5928
5929
  "locationInModule": {
5929
5930
  "filename": "src/types.ts",
5930
- "line": 70
5931
+ "line": 71
5931
5932
  },
5932
5933
  "name": "clientId",
5933
5934
  "optional": true,
@@ -5952,7 +5953,7 @@
5952
5953
  "kind": "interface",
5953
5954
  "locationInModule": {
5954
5955
  "filename": "src/types.ts",
5955
- "line": 191
5956
+ "line": 192
5956
5957
  },
5957
5958
  "name": "OptimisticConflictResolutionStrategy",
5958
5959
  "properties": [
@@ -5966,7 +5967,7 @@
5966
5967
  "immutable": true,
5967
5968
  "locationInModule": {
5968
5969
  "filename": "src/types.ts",
5969
- "line": 196
5970
+ "line": 197
5970
5971
  },
5971
5972
  "name": "handlerType",
5972
5973
  "type": {
@@ -5987,7 +5988,7 @@
5987
5988
  "kind": "interface",
5988
5989
  "locationInModule": {
5989
5990
  "filename": "src/types.ts",
5990
- "line": 413
5991
+ "line": 414
5991
5992
  },
5992
5993
  "name": "PartialTranslationBehavior",
5993
5994
  "properties": [
@@ -6001,7 +6002,7 @@
6001
6002
  "immutable": true,
6002
6003
  "locationInModule": {
6003
6004
  "filename": "src/types.ts",
6004
- "line": 425
6005
+ "line": 426
6005
6006
  },
6006
6007
  "name": "disableResolverDeduping",
6007
6008
  "optional": true,
@@ -6023,7 +6024,7 @@
6023
6024
  "immutable": true,
6024
6025
  "locationInModule": {
6025
6026
  "filename": "src/types.ts",
6026
- "line": 464
6027
+ "line": 465
6027
6028
  },
6028
6029
  "name": "enableAutoIndexQueryNames",
6029
6030
  "optional": true,
@@ -6042,7 +6043,7 @@
6042
6043
  "immutable": true,
6043
6044
  "locationInModule": {
6044
6045
  "filename": "src/types.ts",
6045
- "line": 479
6046
+ "line": 480
6046
6047
  },
6047
6048
  "name": "enableSearchNodeToNodeEncryption",
6048
6049
  "optional": true,
@@ -6060,7 +6061,7 @@
6060
6061
  "immutable": true,
6061
6062
  "locationInModule": {
6062
6063
  "filename": "src/types.ts",
6063
- "line": 485
6064
+ "line": 486
6064
6065
  },
6065
6066
  "name": "enableTransformerCfnOutputs",
6066
6067
  "optional": true,
@@ -6078,7 +6079,7 @@
6078
6079
  "immutable": true,
6079
6080
  "locationInModule": {
6080
6081
  "filename": "src/types.ts",
6081
- "line": 444
6082
+ "line": 445
6082
6083
  },
6083
6084
  "name": "populateOwnerFieldForStaticGroupAuth",
6084
6085
  "optional": true,
@@ -6096,7 +6097,7 @@
6096
6097
  "immutable": true,
6097
6098
  "locationInModule": {
6098
6099
  "filename": "src/types.ts",
6099
- "line": 470
6100
+ "line": 471
6100
6101
  },
6101
6102
  "name": "respectPrimaryKeyAttributesOnConnectionField",
6102
6103
  "optional": true,
@@ -6114,7 +6115,7 @@
6114
6115
  "immutable": true,
6115
6116
  "locationInModule": {
6116
6117
  "filename": "src/types.ts",
6117
- "line": 431
6118
+ "line": 432
6118
6119
  },
6119
6120
  "name": "sandboxModeEnabled",
6120
6121
  "optional": true,
@@ -6135,7 +6136,7 @@
6135
6136
  "immutable": true,
6136
6137
  "locationInModule": {
6137
6138
  "filename": "src/types.ts",
6138
- "line": 457
6139
+ "line": 458
6139
6140
  },
6140
6141
  "name": "secondaryKeyAsGSI",
6141
6142
  "optional": true,
@@ -6156,7 +6157,7 @@
6156
6157
  "immutable": true,
6157
6158
  "locationInModule": {
6158
6159
  "filename": "src/types.ts",
6159
- "line": 418
6160
+ "line": 419
6160
6161
  },
6161
6162
  "name": "shouldDeepMergeDirectiveConfigDefaults",
6162
6163
  "optional": true,
@@ -6175,7 +6176,7 @@
6175
6176
  "immutable": true,
6176
6177
  "locationInModule": {
6177
6178
  "filename": "src/types.ts",
6178
- "line": 451
6179
+ "line": 452
6179
6180
  },
6180
6181
  "name": "suppressApiKeyGeneration",
6181
6182
  "optional": true,
@@ -6193,7 +6194,7 @@
6193
6194
  "immutable": true,
6194
6195
  "locationInModule": {
6195
6196
  "filename": "src/types.ts",
6196
- "line": 438
6197
+ "line": 439
6197
6198
  },
6198
6199
  "name": "useSubUsernameForDefaultIdentityClaim",
6199
6200
  "optional": true,
@@ -6218,7 +6219,7 @@
6218
6219
  "kind": "interface",
6219
6220
  "locationInModule": {
6220
6221
  "filename": "src/types.ts",
6221
- "line": 295
6222
+ "line": 296
6222
6223
  },
6223
6224
  "name": "QueryFunctionSlot",
6224
6225
  "properties": [
@@ -6232,7 +6233,7 @@
6232
6233
  "immutable": true,
6233
6234
  "locationInModule": {
6234
6235
  "filename": "src/types.ts",
6235
- "line": 305
6236
+ "line": 306
6236
6237
  },
6237
6238
  "name": "slotName",
6238
6239
  "type": {
@@ -6248,7 +6249,7 @@
6248
6249
  "immutable": true,
6249
6250
  "locationInModule": {
6250
6251
  "filename": "src/types.ts",
6251
- "line": 299
6252
+ "line": 300
6252
6253
  },
6253
6254
  "name": "typeName",
6254
6255
  "type": {
@@ -6272,7 +6273,7 @@
6272
6273
  "kind": "interface",
6273
6274
  "locationInModule": {
6274
6275
  "filename": "src/types.ts",
6275
- "line": 311
6276
+ "line": 312
6276
6277
  },
6277
6278
  "name": "SubscriptionFunctionSlot",
6278
6279
  "properties": [
@@ -6286,7 +6287,7 @@
6286
6287
  "immutable": true,
6287
6288
  "locationInModule": {
6288
6289
  "filename": "src/types.ts",
6289
- "line": 321
6290
+ "line": 322
6290
6291
  },
6291
6292
  "name": "slotName",
6292
6293
  "type": {
@@ -6302,7 +6303,7 @@
6302
6303
  "immutable": true,
6303
6304
  "locationInModule": {
6304
6305
  "filename": "src/types.ts",
6305
- "line": 315
6306
+ "line": 316
6306
6307
  },
6307
6308
  "name": "typeName",
6308
6309
  "type": {
@@ -6324,7 +6325,7 @@
6324
6325
  "kind": "interface",
6325
6326
  "locationInModule": {
6326
6327
  "filename": "src/types.ts",
6327
- "line": 335
6328
+ "line": 336
6328
6329
  },
6329
6330
  "name": "TranslationBehavior",
6330
6331
  "properties": [
@@ -6338,7 +6339,7 @@
6338
6339
  "immutable": true,
6339
6340
  "locationInModule": {
6340
6341
  "filename": "src/types.ts",
6341
- "line": 347
6342
+ "line": 348
6342
6343
  },
6343
6344
  "name": "disableResolverDeduping",
6344
6345
  "type": {
@@ -6359,7 +6360,7 @@
6359
6360
  "immutable": true,
6360
6361
  "locationInModule": {
6361
6362
  "filename": "src/types.ts",
6362
- "line": 386
6363
+ "line": 387
6363
6364
  },
6364
6365
  "name": "enableAutoIndexQueryNames",
6365
6366
  "type": {
@@ -6377,7 +6378,7 @@
6377
6378
  "immutable": true,
6378
6379
  "locationInModule": {
6379
6380
  "filename": "src/types.ts",
6380
- "line": 401
6381
+ "line": 402
6381
6382
  },
6382
6383
  "name": "enableSearchNodeToNodeEncryption",
6383
6384
  "type": {
@@ -6394,7 +6395,7 @@
6394
6395
  "immutable": true,
6395
6396
  "locationInModule": {
6396
6397
  "filename": "src/types.ts",
6397
- "line": 407
6398
+ "line": 408
6398
6399
  },
6399
6400
  "name": "enableTransformerCfnOutputs",
6400
6401
  "type": {
@@ -6411,7 +6412,7 @@
6411
6412
  "immutable": true,
6412
6413
  "locationInModule": {
6413
6414
  "filename": "src/types.ts",
6414
- "line": 366
6415
+ "line": 367
6415
6416
  },
6416
6417
  "name": "populateOwnerFieldForStaticGroupAuth",
6417
6418
  "type": {
@@ -6428,7 +6429,7 @@
6428
6429
  "immutable": true,
6429
6430
  "locationInModule": {
6430
6431
  "filename": "src/types.ts",
6431
- "line": 392
6432
+ "line": 393
6432
6433
  },
6433
6434
  "name": "respectPrimaryKeyAttributesOnConnectionField",
6434
6435
  "type": {
@@ -6445,7 +6446,7 @@
6445
6446
  "immutable": true,
6446
6447
  "locationInModule": {
6447
6448
  "filename": "src/types.ts",
6448
- "line": 353
6449
+ "line": 354
6449
6450
  },
6450
6451
  "name": "sandboxModeEnabled",
6451
6452
  "type": {
@@ -6465,7 +6466,7 @@
6465
6466
  "immutable": true,
6466
6467
  "locationInModule": {
6467
6468
  "filename": "src/types.ts",
6468
- "line": 379
6469
+ "line": 380
6469
6470
  },
6470
6471
  "name": "secondaryKeyAsGSI",
6471
6472
  "type": {
@@ -6485,7 +6486,7 @@
6485
6486
  "immutable": true,
6486
6487
  "locationInModule": {
6487
6488
  "filename": "src/types.ts",
6488
- "line": 340
6489
+ "line": 341
6489
6490
  },
6490
6491
  "name": "shouldDeepMergeDirectiveConfigDefaults",
6491
6492
  "type": {
@@ -6503,7 +6504,7 @@
6503
6504
  "immutable": true,
6504
6505
  "locationInModule": {
6505
6506
  "filename": "src/types.ts",
6506
- "line": 373
6507
+ "line": 374
6507
6508
  },
6508
6509
  "name": "suppressApiKeyGeneration",
6509
6510
  "type": {
@@ -6520,7 +6521,7 @@
6520
6521
  "immutable": true,
6521
6522
  "locationInModule": {
6522
6523
  "filename": "src/types.ts",
6523
- "line": 360
6524
+ "line": 361
6524
6525
  },
6525
6526
  "name": "useSubUsernameForDefaultIdentityClaim",
6526
6527
  "type": {
@@ -6541,7 +6542,7 @@
6541
6542
  "kind": "interface",
6542
6543
  "locationInModule": {
6543
6544
  "filename": "src/types.ts",
6544
- "line": 45
6545
+ "line": 46
6545
6546
  },
6546
6547
  "name": "UserPoolAuthorizationConfig",
6547
6548
  "properties": [
@@ -6554,7 +6555,7 @@
6554
6555
  "immutable": true,
6555
6556
  "locationInModule": {
6556
6557
  "filename": "src/types.ts",
6557
- "line": 49
6558
+ "line": 50
6558
6559
  },
6559
6560
  "name": "userPool",
6560
6561
  "type": {
@@ -6565,6 +6566,6 @@
6565
6566
  "symbolId": "src/types:UserPoolAuthorizationConfig"
6566
6567
  }
6567
6568
  },
6568
- "version": "1.1.0",
6569
- "fingerprint": "6f0RcI03LZ1LUsCuqltGlpcTYnz+nQodIpNzoP0InH0="
6569
+ "version": "1.1.2",
6570
+ "fingerprint": "uSk3zzwdu0YM1pXoQHUNRWrSmIHlzbSIH3yArMi9H7s="
6570
6571
  }