@aws-amplify/graphql-api-construct 1.2.0-amplify-table-preview.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +114 -151
- package/API.md +1 -4
- package/CHANGELOG.md +7 -4
- package/README.md +17 -0
- package/lib/amplify-graphql-api.d.ts +4 -0
- package/lib/amplify-graphql-api.js +23 -6
- package/lib/amplify-graphql-definition.js +1 -1
- package/lib/internal/amplify-metadata.js +3 -14
- package/lib/internal/authorization-modes.d.ts +2 -10
- package/lib/internal/authorization-modes.js +4 -4
- package/lib/internal/construct-exports.js +3 -12
- package/lib/internal/construct-tree.d.ts +14 -0
- package/lib/internal/construct-tree.js +28 -0
- package/lib/internal/default-parameters.js +1 -2
- package/lib/types.d.ts +4 -15
- package/lib/types.js +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/API.md +3 -12
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts +2 -4
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +5 -10
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts +1 -6
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.d.ts +3 -3
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js +12 -8
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +10 -11
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +0 -4
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +7 -8
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +0 -4
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +6 -7
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +0 -4
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +6 -7
- package/node_modules/@aws-amplify/graphql-index-transformer/API.md +0 -3
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +0 -7
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.js +1 -2
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js +7 -26
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +7 -8
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +0 -4
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +10 -11
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +0 -8
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js +0 -4
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.d.ts +2 -5
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js +60 -46
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/package.json +6 -8
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +0 -4
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +6 -7
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +0 -7
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js +10 -3
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +8 -9
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +0 -4
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +7 -8
- package/node_modules/@aws-amplify/graphql-transformer/API.md +0 -3
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +3 -3
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +0 -3
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +3 -11
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/package.json +14 -15
- package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +2 -15
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +0 -6
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +4 -5
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +0 -6
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -3
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transform-parameters.ts +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
- package/node_modules/graphql-transformer-common/API.md +0 -3
- package/node_modules/graphql-transformer-common/CHANGELOG.md +0 -6
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts +0 -3
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts.map +1 -1
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js +0 -3
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js.map +1 -1
- package/node_modules/graphql-transformer-common/package.json +2 -3
- package/package.json +16 -16
- package/src/amplify-graphql-api.ts +30 -5
- package/src/internal/amplify-metadata.ts +1 -13
- package/src/internal/authorization-modes.ts +9 -16
- package/src/internal/construct-exports.ts +2 -12
- package/src/internal/construct-tree.ts +26 -0
- package/src/internal/default-parameters.ts +0 -1
- package/src/types.ts +4 -18
- package/node_modules/@aws-amplify/graphql-auth-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-default-value-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts +0 -13
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js +0 -167
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts +0 -40
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js +0 -242
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts +0 -13
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js +0 -665
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js.map +0 -1
- package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-searchable-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +0 -201
- package/node_modules/graphql-transformer-common/LICENSE +0 -201
package/.jsii
CHANGED
@@ -8,26 +8,26 @@
|
|
8
8
|
"bundled": {
|
9
9
|
"@aws-amplify/backend-output-schemas": "^0.2.0-alpha.6",
|
10
10
|
"@aws-amplify/backend-output-storage": "^0.1.1-alpha.2",
|
11
|
-
"@aws-amplify/graphql-auth-transformer": "3.1.9
|
12
|
-
"@aws-amplify/graphql-default-value-transformer": "2.1.
|
13
|
-
"@aws-amplify/graphql-function-transformer": "2.1.
|
14
|
-
"@aws-amplify/graphql-http-transformer": "2.1.
|
15
|
-
"@aws-amplify/graphql-index-transformer": "2.
|
16
|
-
"@aws-amplify/graphql-maps-to-transformer": "3.2.
|
17
|
-
"@aws-amplify/graphql-model-transformer": "2.3
|
18
|
-
"@aws-amplify/graphql-predictions-transformer": "2.1.
|
19
|
-
"@aws-amplify/graphql-relational-transformer": "2.
|
20
|
-
"@aws-amplify/graphql-searchable-transformer": "2.2.
|
21
|
-
"@aws-amplify/graphql-transformer": "1.
|
22
|
-
"@aws-amplify/graphql-transformer-core": "2.3
|
23
|
-
"@aws-amplify/graphql-transformer-interfaces": "3.
|
11
|
+
"@aws-amplify/graphql-auth-transformer": "3.1.9",
|
12
|
+
"@aws-amplify/graphql-default-value-transformer": "2.1.7",
|
13
|
+
"@aws-amplify/graphql-function-transformer": "2.1.6",
|
14
|
+
"@aws-amplify/graphql-http-transformer": "2.1.6",
|
15
|
+
"@aws-amplify/graphql-index-transformer": "2.1.7",
|
16
|
+
"@aws-amplify/graphql-maps-to-transformer": "3.2.4",
|
17
|
+
"@aws-amplify/graphql-model-transformer": "2.2.3",
|
18
|
+
"@aws-amplify/graphql-predictions-transformer": "2.1.6",
|
19
|
+
"@aws-amplify/graphql-relational-transformer": "2.1.7",
|
20
|
+
"@aws-amplify/graphql-searchable-transformer": "2.2.3",
|
21
|
+
"@aws-amplify/graphql-transformer": "1.2.5",
|
22
|
+
"@aws-amplify/graphql-transformer-core": "2.2.3",
|
23
|
+
"@aws-amplify/graphql-transformer-interfaces": "3.2.1",
|
24
24
|
"charenc": "^0.0.2",
|
25
25
|
"crypt": "^0.0.2",
|
26
26
|
"fs-extra": "^8.1.0",
|
27
27
|
"graceful-fs": "^4.2.11",
|
28
28
|
"graphql": "^15.5.0",
|
29
29
|
"graphql-mapping-template": "4.20.12",
|
30
|
-
"graphql-transformer-common": "4.
|
30
|
+
"graphql-transformer-common": "4.25.1",
|
31
31
|
"hjson": "^3.2.2",
|
32
32
|
"immer": "^9.0.12",
|
33
33
|
"is-buffer": "^2.0.5",
|
@@ -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 L2 or L1 resources generated by the transformer, which generally follow the access pattern\n\n```typescript\n const api = new AmplifyGraphQlApi(this, 'api', { <params> });\n // Access L2 resources under `.resources`\n api.resources.tables[\"Todo\"].tableArn;\n\n // Access L1 resources under `.resources.cfnResources`\n api.resources.cfnResources.cfnGraphqlApi.xrayEnabled = true;\n Object.values(api.resources.cfnResources.cfnTables).forEach(table => {\n table.pointInTimeRecoverySpecification = { pointInTimeRecoveryEnabled: false };\n });\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"
|
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\nNote: only a single instance of the `AmplifyGraphqlApi` construct can be invoked within a CDK synthesis at this point in time.\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 L2 or L1 resources generated by the transformer, which generally follow the access pattern\n\n```typescript\n const api = new AmplifyGraphQlApi(this, 'api', { <params> });\n // Access L2 resources under `.resources`\n api.resources.tables[\"Todo\"].tableArn;\n\n // Access L1 resources under `.resources.cfnResources`\n api.resources.cfnResources.cfnGraphqlApi.xrayEnabled = true;\n Object.values(api.resources.cfnResources.cfnTables).forEach(table => {\n table.pointInTimeRecoverySpecification = { pointInTimeRecoveryEnabled: false };\n });\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.apiId\">apiId</a></code> | <code>string</code> | Generated Api Id. |\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##### `apiId`<sup>Required</sup> <a name=\"apiId\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.apiId\"></a>\n\n```typescript\npublic readonly apiId: string;\n```\n\n- *Type:* string\n\nGenerated Api Id.\n\nMay be a CDK Token.\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":
|
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":
|
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":
|
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":
|
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":
|
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":
|
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":
|
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":
|
3654
|
+
"line": 743
|
3655
3655
|
},
|
3656
3656
|
"name": "runtime",
|
3657
3657
|
"optional": true,
|
@@ -3678,7 +3678,7 @@
|
|
3678
3678
|
},
|
3679
3679
|
"locationInModule": {
|
3680
3680
|
"filename": "src/amplify-graphql-api.ts",
|
3681
|
-
"line":
|
3681
|
+
"line": 132
|
3682
3682
|
},
|
3683
3683
|
"parameters": [
|
3684
3684
|
{
|
@@ -3713,7 +3713,7 @@
|
|
3713
3713
|
"kind": "class",
|
3714
3714
|
"locationInModule": {
|
3715
3715
|
"filename": "src/amplify-graphql-api.ts",
|
3716
|
-
"line":
|
3716
|
+
"line": 83
|
3717
3717
|
},
|
3718
3718
|
"methods": [
|
3719
3719
|
{
|
@@ -3725,7 +3725,7 @@
|
|
3725
3725
|
},
|
3726
3726
|
"locationInModule": {
|
3727
3727
|
"filename": "src/amplify-graphql-api.ts",
|
3728
|
-
"line":
|
3728
|
+
"line": 257
|
3729
3729
|
},
|
3730
3730
|
"name": "addDynamoDbDataSource",
|
3731
3731
|
"parameters": [
|
@@ -3774,7 +3774,7 @@
|
|
3774
3774
|
},
|
3775
3775
|
"locationInModule": {
|
3776
3776
|
"filename": "src/amplify-graphql-api.ts",
|
3777
|
-
"line":
|
3777
|
+
"line": 269
|
3778
3778
|
},
|
3779
3779
|
"name": "addElasticsearchDataSource",
|
3780
3780
|
"parameters": [
|
@@ -3821,7 +3821,7 @@
|
|
3821
3821
|
},
|
3822
3822
|
"locationInModule": {
|
3823
3823
|
"filename": "src/amplify-graphql-api.ts",
|
3824
|
-
"line":
|
3824
|
+
"line": 279
|
3825
3825
|
},
|
3826
3826
|
"name": "addEventBridgeDataSource",
|
3827
3827
|
"parameters": [
|
@@ -3868,7 +3868,7 @@
|
|
3868
3868
|
},
|
3869
3869
|
"locationInModule": {
|
3870
3870
|
"filename": "src/amplify-graphql-api.ts",
|
3871
|
-
"line":
|
3871
|
+
"line": 361
|
3872
3872
|
},
|
3873
3873
|
"name": "addFunction",
|
3874
3874
|
"parameters": [
|
@@ -3903,7 +3903,7 @@
|
|
3903
3903
|
},
|
3904
3904
|
"locationInModule": {
|
3905
3905
|
"filename": "src/amplify-graphql-api.ts",
|
3906
|
-
"line":
|
3906
|
+
"line": 290
|
3907
3907
|
},
|
3908
3908
|
"name": "addHttpDataSource",
|
3909
3909
|
"parameters": [
|
@@ -3951,7 +3951,7 @@
|
|
3951
3951
|
},
|
3952
3952
|
"locationInModule": {
|
3953
3953
|
"filename": "src/amplify-graphql-api.ts",
|
3954
|
-
"line":
|
3954
|
+
"line": 301
|
3955
3955
|
},
|
3956
3956
|
"name": "addLambdaDataSource",
|
3957
3957
|
"parameters": [
|
@@ -3999,7 +3999,7 @@
|
|
3999
3999
|
},
|
4000
4000
|
"locationInModule": {
|
4001
4001
|
"filename": "src/amplify-graphql-api.ts",
|
4002
|
-
"line":
|
4002
|
+
"line": 312
|
4003
4003
|
},
|
4004
4004
|
"name": "addNoneDataSource",
|
4005
4005
|
"parameters": [
|
@@ -4038,7 +4038,7 @@
|
|
4038
4038
|
},
|
4039
4039
|
"locationInModule": {
|
4040
4040
|
"filename": "src/amplify-graphql-api.ts",
|
4041
|
-
"line":
|
4041
|
+
"line": 323
|
4042
4042
|
},
|
4043
4043
|
"name": "addOpenSearchDataSource",
|
4044
4044
|
"parameters": [
|
@@ -4086,7 +4086,7 @@
|
|
4086
4086
|
},
|
4087
4087
|
"locationInModule": {
|
4088
4088
|
"filename": "src/amplify-graphql-api.ts",
|
4089
|
-
"line":
|
4089
|
+
"line": 336
|
4090
4090
|
},
|
4091
4091
|
"name": "addRdsDataSource",
|
4092
4092
|
"parameters": [
|
@@ -4153,7 +4153,7 @@
|
|
4153
4153
|
},
|
4154
4154
|
"locationInModule": {
|
4155
4155
|
"filename": "src/amplify-graphql-api.ts",
|
4156
|
-
"line":
|
4156
|
+
"line": 352
|
4157
4157
|
},
|
4158
4158
|
"name": "addResolver",
|
4159
4159
|
"parameters": [
|
@@ -4185,6 +4185,22 @@
|
|
4185
4185
|
],
|
4186
4186
|
"name": "AmplifyGraphqlApi",
|
4187
4187
|
"properties": [
|
4188
|
+
{
|
4189
|
+
"docs": {
|
4190
|
+
"remarks": "May be a CDK Token.",
|
4191
|
+
"stability": "stable",
|
4192
|
+
"summary": "Generated Api Id."
|
4193
|
+
},
|
4194
|
+
"immutable": true,
|
4195
|
+
"locationInModule": {
|
4196
|
+
"filename": "src/amplify-graphql-api.ts",
|
4197
|
+
"line": 118
|
4198
|
+
},
|
4199
|
+
"name": "apiId",
|
4200
|
+
"type": {
|
4201
|
+
"primitive": "string"
|
4202
|
+
}
|
4203
|
+
},
|
4188
4204
|
{
|
4189
4205
|
"docs": {
|
4190
4206
|
"stability": "stable",
|
@@ -4193,7 +4209,7 @@
|
|
4193
4209
|
"immutable": true,
|
4194
4210
|
"locationInModule": {
|
4195
4211
|
"filename": "src/amplify-graphql-api.ts",
|
4196
|
-
"line":
|
4212
|
+
"line": 98
|
4197
4213
|
},
|
4198
4214
|
"name": "generatedFunctionSlots",
|
4199
4215
|
"type": {
|
@@ -4226,7 +4242,7 @@
|
|
4226
4242
|
"immutable": true,
|
4227
4243
|
"locationInModule": {
|
4228
4244
|
"filename": "src/amplify-graphql-api.ts",
|
4229
|
-
"line":
|
4245
|
+
"line": 103
|
4230
4246
|
},
|
4231
4247
|
"name": "graphqlUrl",
|
4232
4248
|
"type": {
|
@@ -4242,7 +4258,7 @@
|
|
4242
4258
|
"immutable": true,
|
4243
4259
|
"locationInModule": {
|
4244
4260
|
"filename": "src/amplify-graphql-api.ts",
|
4245
|
-
"line":
|
4261
|
+
"line": 108
|
4246
4262
|
},
|
4247
4263
|
"name": "realtimeUrl",
|
4248
4264
|
"type": {
|
@@ -4257,7 +4273,7 @@
|
|
4257
4273
|
"immutable": true,
|
4258
4274
|
"locationInModule": {
|
4259
4275
|
"filename": "src/amplify-graphql-api.ts",
|
4260
|
-
"line":
|
4276
|
+
"line": 87
|
4261
4277
|
},
|
4262
4278
|
"name": "resources",
|
4263
4279
|
"type": {
|
@@ -4273,7 +4289,7 @@
|
|
4273
4289
|
"immutable": true,
|
4274
4290
|
"locationInModule": {
|
4275
4291
|
"filename": "src/amplify-graphql-api.ts",
|
4276
|
-
"line":
|
4292
|
+
"line": 113
|
4277
4293
|
},
|
4278
4294
|
"name": "apiKey",
|
4279
4295
|
"optional": true,
|
@@ -4296,7 +4312,7 @@
|
|
4296
4312
|
"kind": "interface",
|
4297
4313
|
"locationInModule": {
|
4298
4314
|
"filename": "src/types.ts",
|
4299
|
-
"line":
|
4315
|
+
"line": 614
|
4300
4316
|
},
|
4301
4317
|
"name": "AmplifyGraphqlApiCfnResources",
|
4302
4318
|
"properties": [
|
@@ -4309,7 +4325,7 @@
|
|
4309
4325
|
"immutable": true,
|
4310
4326
|
"locationInModule": {
|
4311
4327
|
"filename": "src/types.ts",
|
4312
|
-
"line":
|
4328
|
+
"line": 663
|
4313
4329
|
},
|
4314
4330
|
"name": "additionalCfnResources",
|
4315
4331
|
"type": {
|
@@ -4321,27 +4337,6 @@
|
|
4321
4337
|
}
|
4322
4338
|
}
|
4323
4339
|
},
|
4324
|
-
{
|
4325
|
-
"abstract": true,
|
4326
|
-
"docs": {
|
4327
|
-
"stability": "stable",
|
4328
|
-
"summary": "The Generated Amplify DynamoDB Table L1 Resources, keyed by model name."
|
4329
|
-
},
|
4330
|
-
"immutable": true,
|
4331
|
-
"locationInModule": {
|
4332
|
-
"filename": "src/types.ts",
|
4333
|
-
"line": 662
|
4334
|
-
},
|
4335
|
-
"name": "cfnAmplifyTables",
|
4336
|
-
"type": {
|
4337
|
-
"collection": {
|
4338
|
-
"elementtype": {
|
4339
|
-
"fqn": "aws-cdk-lib.CfnResource"
|
4340
|
-
},
|
4341
|
-
"kind": "map"
|
4342
|
-
}
|
4343
|
-
}
|
4344
|
-
},
|
4345
4340
|
{
|
4346
4341
|
"abstract": true,
|
4347
4342
|
"docs": {
|
@@ -4351,7 +4346,7 @@
|
|
4351
4346
|
"immutable": true,
|
4352
4347
|
"locationInModule": {
|
4353
4348
|
"filename": "src/types.ts",
|
4354
|
-
"line":
|
4349
|
+
"line": 643
|
4355
4350
|
},
|
4356
4351
|
"name": "cfnDataSources",
|
4357
4352
|
"type": {
|
@@ -4372,7 +4367,7 @@
|
|
4372
4367
|
"immutable": true,
|
4373
4368
|
"locationInModule": {
|
4374
4369
|
"filename": "src/types.ts",
|
4375
|
-
"line":
|
4370
|
+
"line": 638
|
4376
4371
|
},
|
4377
4372
|
"name": "cfnFunctionConfigurations",
|
4378
4373
|
"type": {
|
@@ -4393,7 +4388,7 @@
|
|
4393
4388
|
"immutable": true,
|
4394
4389
|
"locationInModule": {
|
4395
4390
|
"filename": "src/types.ts",
|
4396
|
-
"line":
|
4391
|
+
"line": 658
|
4397
4392
|
},
|
4398
4393
|
"name": "cfnFunctions",
|
4399
4394
|
"type": {
|
@@ -4414,7 +4409,7 @@
|
|
4414
4409
|
"immutable": true,
|
4415
4410
|
"locationInModule": {
|
4416
4411
|
"filename": "src/types.ts",
|
4417
|
-
"line":
|
4412
|
+
"line": 618
|
4418
4413
|
},
|
4419
4414
|
"name": "cfnGraphqlApi",
|
4420
4415
|
"type": {
|
@@ -4430,7 +4425,7 @@
|
|
4430
4425
|
"immutable": true,
|
4431
4426
|
"locationInModule": {
|
4432
4427
|
"filename": "src/types.ts",
|
4433
|
-
"line":
|
4428
|
+
"line": 623
|
4434
4429
|
},
|
4435
4430
|
"name": "cfnGraphqlSchema",
|
4436
4431
|
"type": {
|
@@ -4446,7 +4441,7 @@
|
|
4446
4441
|
"immutable": true,
|
4447
4442
|
"locationInModule": {
|
4448
4443
|
"filename": "src/types.ts",
|
4449
|
-
"line":
|
4444
|
+
"line": 633
|
4450
4445
|
},
|
4451
4446
|
"name": "cfnResolvers",
|
4452
4447
|
"type": {
|
@@ -4467,7 +4462,7 @@
|
|
4467
4462
|
"immutable": true,
|
4468
4463
|
"locationInModule": {
|
4469
4464
|
"filename": "src/types.ts",
|
4470
|
-
"line":
|
4465
|
+
"line": 653
|
4471
4466
|
},
|
4472
4467
|
"name": "cfnRoles",
|
4473
4468
|
"type": {
|
@@ -4488,7 +4483,7 @@
|
|
4488
4483
|
"immutable": true,
|
4489
4484
|
"locationInModule": {
|
4490
4485
|
"filename": "src/types.ts",
|
4491
|
-
"line":
|
4486
|
+
"line": 648
|
4492
4487
|
},
|
4493
4488
|
"name": "cfnTables",
|
4494
4489
|
"type": {
|
@@ -4509,7 +4504,7 @@
|
|
4509
4504
|
"immutable": true,
|
4510
4505
|
"locationInModule": {
|
4511
4506
|
"filename": "src/types.ts",
|
4512
|
-
"line":
|
4507
|
+
"line": 628
|
4513
4508
|
},
|
4514
4509
|
"name": "cfnApiKey",
|
4515
4510
|
"optional": true,
|
@@ -4532,7 +4527,7 @@
|
|
4532
4527
|
"kind": "interface",
|
4533
4528
|
"locationInModule": {
|
4534
4529
|
"filename": "src/types.ts",
|
4535
|
-
"line":
|
4530
|
+
"line": 538
|
4536
4531
|
},
|
4537
4532
|
"name": "AmplifyGraphqlApiProps",
|
4538
4533
|
"properties": [
|
@@ -4546,7 +4541,7 @@
|
|
4546
4541
|
"immutable": true,
|
4547
4542
|
"locationInModule": {
|
4548
4543
|
"filename": "src/types.ts",
|
4549
|
-
"line":
|
4544
|
+
"line": 555
|
4550
4545
|
},
|
4551
4546
|
"name": "authorizationModes",
|
4552
4547
|
"type": {
|
@@ -4563,7 +4558,7 @@
|
|
4563
4558
|
"immutable": true,
|
4564
4559
|
"locationInModule": {
|
4565
4560
|
"filename": "src/types.ts",
|
4566
|
-
"line":
|
4561
|
+
"line": 543
|
4567
4562
|
},
|
4568
4563
|
"name": "definition",
|
4569
4564
|
"type": {
|
@@ -4580,7 +4575,7 @@
|
|
4580
4575
|
"immutable": true,
|
4581
4576
|
"locationInModule": {
|
4582
4577
|
"filename": "src/types.ts",
|
4583
|
-
"line":
|
4578
|
+
"line": 549
|
4584
4579
|
},
|
4585
4580
|
"name": "apiName",
|
4586
4581
|
"optional": true,
|
@@ -4598,7 +4593,7 @@
|
|
4598
4593
|
"immutable": true,
|
4599
4594
|
"locationInModule": {
|
4600
4595
|
"filename": "src/types.ts",
|
4601
|
-
"line":
|
4596
|
+
"line": 569
|
4602
4597
|
},
|
4603
4598
|
"name": "conflictResolution",
|
4604
4599
|
"optional": true,
|
@@ -4618,7 +4613,7 @@
|
|
4618
4613
|
"immutable": true,
|
4619
4614
|
"locationInModule": {
|
4620
4615
|
"filename": "src/types.ts",
|
4621
|
-
"line":
|
4616
|
+
"line": 563
|
4622
4617
|
},
|
4623
4618
|
"name": "functionNameMap",
|
4624
4619
|
"optional": true,
|
@@ -4641,7 +4636,7 @@
|
|
4641
4636
|
"immutable": true,
|
4642
4637
|
"locationInModule": {
|
4643
4638
|
"filename": "src/types.ts",
|
4644
|
-
"line":
|
4639
|
+
"line": 584
|
4645
4640
|
},
|
4646
4641
|
"name": "functionSlots",
|
4647
4642
|
"optional": true,
|
@@ -4676,7 +4671,7 @@
|
|
4676
4671
|
"immutable": true,
|
4677
4672
|
"locationInModule": {
|
4678
4673
|
"filename": "src/types.ts",
|
4679
|
-
"line":
|
4674
|
+
"line": 607
|
4680
4675
|
},
|
4681
4676
|
"name": "outputStorageStrategy",
|
4682
4677
|
"optional": true,
|
@@ -4693,7 +4688,7 @@
|
|
4693
4688
|
"immutable": true,
|
4694
4689
|
"locationInModule": {
|
4695
4690
|
"filename": "src/types.ts",
|
4696
|
-
"line":
|
4691
|
+
"line": 596
|
4697
4692
|
},
|
4698
4693
|
"name": "predictionsBucket",
|
4699
4694
|
"optional": true,
|
@@ -4711,7 +4706,7 @@
|
|
4711
4706
|
"immutable": true,
|
4712
4707
|
"locationInModule": {
|
4713
4708
|
"filename": "src/types.ts",
|
4714
|
-
"line":
|
4709
|
+
"line": 578
|
4715
4710
|
},
|
4716
4711
|
"name": "stackMappings",
|
4717
4712
|
"optional": true,
|
@@ -4737,7 +4732,7 @@
|
|
4737
4732
|
"immutable": true,
|
4738
4733
|
"locationInModule": {
|
4739
4734
|
"filename": "src/types.ts",
|
4740
|
-
"line":
|
4735
|
+
"line": 591
|
4741
4736
|
},
|
4742
4737
|
"name": "transformerPlugins",
|
4743
4738
|
"optional": true,
|
@@ -4759,7 +4754,7 @@
|
|
4759
4754
|
"immutable": true,
|
4760
4755
|
"locationInModule": {
|
4761
4756
|
"filename": "src/types.ts",
|
4762
|
-
"line":
|
4757
|
+
"line": 602
|
4763
4758
|
},
|
4764
4759
|
"name": "translationBehavior",
|
4765
4760
|
"optional": true,
|
@@ -4782,7 +4777,7 @@
|
|
4782
4777
|
"kind": "interface",
|
4783
4778
|
"locationInModule": {
|
4784
4779
|
"filename": "src/types.ts",
|
4785
|
-
"line":
|
4780
|
+
"line": 670
|
4786
4781
|
},
|
4787
4782
|
"name": "AmplifyGraphqlApiResources",
|
4788
4783
|
"properties": [
|
@@ -4795,7 +4790,7 @@
|
|
4795
4790
|
"immutable": true,
|
4796
4791
|
"locationInModule": {
|
4797
4792
|
"filename": "src/types.ts",
|
4798
|
-
"line":
|
4793
|
+
"line": 694
|
4799
4794
|
},
|
4800
4795
|
"name": "cfnResources",
|
4801
4796
|
"type": {
|
@@ -4811,7 +4806,7 @@
|
|
4811
4806
|
"immutable": true,
|
4812
4807
|
"locationInModule": {
|
4813
4808
|
"filename": "src/types.ts",
|
4814
|
-
"line":
|
4809
|
+
"line": 689
|
4815
4810
|
},
|
4816
4811
|
"name": "functions",
|
4817
4812
|
"type": {
|
@@ -4832,7 +4827,7 @@
|
|
4832
4827
|
"immutable": true,
|
4833
4828
|
"locationInModule": {
|
4834
4829
|
"filename": "src/types.ts",
|
4835
|
-
"line":
|
4830
|
+
"line": 674
|
4836
4831
|
},
|
4837
4832
|
"name": "graphqlApi",
|
4838
4833
|
"type": {
|
@@ -4848,7 +4843,7 @@
|
|
4848
4843
|
"immutable": true,
|
4849
4844
|
"locationInModule": {
|
4850
4845
|
"filename": "src/types.ts",
|
4851
|
-
"line":
|
4846
|
+
"line": 699
|
4852
4847
|
},
|
4853
4848
|
"name": "nestedStacks",
|
4854
4849
|
"type": {
|
@@ -4869,7 +4864,7 @@
|
|
4869
4864
|
"immutable": true,
|
4870
4865
|
"locationInModule": {
|
4871
4866
|
"filename": "src/types.ts",
|
4872
|
-
"line":
|
4867
|
+
"line": 684
|
4873
4868
|
},
|
4874
4869
|
"name": "roles",
|
4875
4870
|
"type": {
|
@@ -4890,7 +4885,7 @@
|
|
4890
4885
|
"immutable": true,
|
4891
4886
|
"locationInModule": {
|
4892
4887
|
"filename": "src/types.ts",
|
4893
|
-
"line":
|
4888
|
+
"line": 679
|
4894
4889
|
},
|
4895
4890
|
"name": "tables",
|
4896
4891
|
"type": {
|
@@ -5593,7 +5588,7 @@
|
|
5593
5588
|
"kind": "interface",
|
5594
5589
|
"locationInModule": {
|
5595
5590
|
"filename": "src/types.ts",
|
5596
|
-
"line":
|
5591
|
+
"line": 492
|
5597
5592
|
},
|
5598
5593
|
"name": "IAmplifyGraphqlDefinition",
|
5599
5594
|
"properties": [
|
@@ -5607,7 +5602,7 @@
|
|
5607
5602
|
"immutable": true,
|
5608
5603
|
"locationInModule": {
|
5609
5604
|
"filename": "src/types.ts",
|
5610
|
-
"line":
|
5605
|
+
"line": 503
|
5611
5606
|
},
|
5612
5607
|
"name": "functionSlots",
|
5613
5608
|
"type": {
|
@@ -5641,7 +5636,7 @@
|
|
5641
5636
|
"immutable": true,
|
5642
5637
|
"locationInModule": {
|
5643
5638
|
"filename": "src/types.ts",
|
5644
|
-
"line":
|
5639
|
+
"line": 497
|
5645
5640
|
},
|
5646
5641
|
"name": "schema",
|
5647
5642
|
"type": {
|
@@ -5661,7 +5656,7 @@
|
|
5661
5656
|
"kind": "interface",
|
5662
5657
|
"locationInModule": {
|
5663
5658
|
"filename": "src/types.ts",
|
5664
|
-
"line":
|
5659
|
+
"line": 509
|
5665
5660
|
},
|
5666
5661
|
"name": "IBackendOutputEntry",
|
5667
5662
|
"properties": [
|
@@ -5674,7 +5669,7 @@
|
|
5674
5669
|
"immutable": true,
|
5675
5670
|
"locationInModule": {
|
5676
5671
|
"filename": "src/types.ts",
|
5677
|
-
"line":
|
5672
|
+
"line": 518
|
5678
5673
|
},
|
5679
5674
|
"name": "payload",
|
5680
5675
|
"type": {
|
@@ -5695,7 +5690,7 @@
|
|
5695
5690
|
"immutable": true,
|
5696
5691
|
"locationInModule": {
|
5697
5692
|
"filename": "src/types.ts",
|
5698
|
-
"line":
|
5693
|
+
"line": 513
|
5699
5694
|
},
|
5700
5695
|
"name": "version",
|
5701
5696
|
"type": {
|
@@ -5715,7 +5710,7 @@
|
|
5715
5710
|
"kind": "interface",
|
5716
5711
|
"locationInModule": {
|
5717
5712
|
"filename": "src/types.ts",
|
5718
|
-
"line":
|
5713
|
+
"line": 524
|
5719
5714
|
},
|
5720
5715
|
"methods": [
|
5721
5716
|
{
|
@@ -5726,7 +5721,7 @@
|
|
5726
5721
|
},
|
5727
5722
|
"locationInModule": {
|
5728
5723
|
"filename": "src/types.ts",
|
5729
|
-
"line":
|
5724
|
+
"line": 531
|
5730
5725
|
},
|
5731
5726
|
"name": "addBackendOutputEntry",
|
5732
5727
|
"parameters": [
|
@@ -6009,7 +6004,7 @@
|
|
6009
6004
|
"kind": "interface",
|
6010
6005
|
"locationInModule": {
|
6011
6006
|
"filename": "src/types.ts",
|
6012
|
-
"line":
|
6007
|
+
"line": 414
|
6013
6008
|
},
|
6014
6009
|
"name": "PartialTranslationBehavior",
|
6015
6010
|
"properties": [
|
@@ -6023,7 +6018,7 @@
|
|
6023
6018
|
"immutable": true,
|
6024
6019
|
"locationInModule": {
|
6025
6020
|
"filename": "src/types.ts",
|
6026
|
-
"line":
|
6021
|
+
"line": 426
|
6027
6022
|
},
|
6028
6023
|
"name": "disableResolverDeduping",
|
6029
6024
|
"optional": true,
|
@@ -6045,7 +6040,7 @@
|
|
6045
6040
|
"immutable": true,
|
6046
6041
|
"locationInModule": {
|
6047
6042
|
"filename": "src/types.ts",
|
6048
|
-
"line":
|
6043
|
+
"line": 465
|
6049
6044
|
},
|
6050
6045
|
"name": "enableAutoIndexQueryNames",
|
6051
6046
|
"optional": true,
|
@@ -6064,7 +6059,7 @@
|
|
6064
6059
|
"immutable": true,
|
6065
6060
|
"locationInModule": {
|
6066
6061
|
"filename": "src/types.ts",
|
6067
|
-
"line":
|
6062
|
+
"line": 480
|
6068
6063
|
},
|
6069
6064
|
"name": "enableSearchNodeToNodeEncryption",
|
6070
6065
|
"optional": true,
|
@@ -6082,7 +6077,7 @@
|
|
6082
6077
|
"immutable": true,
|
6083
6078
|
"locationInModule": {
|
6084
6079
|
"filename": "src/types.ts",
|
6085
|
-
"line":
|
6080
|
+
"line": 486
|
6086
6081
|
},
|
6087
6082
|
"name": "enableTransformerCfnOutputs",
|
6088
6083
|
"optional": true,
|
@@ -6100,7 +6095,7 @@
|
|
6100
6095
|
"immutable": true,
|
6101
6096
|
"locationInModule": {
|
6102
6097
|
"filename": "src/types.ts",
|
6103
|
-
"line":
|
6098
|
+
"line": 445
|
6104
6099
|
},
|
6105
6100
|
"name": "populateOwnerFieldForStaticGroupAuth",
|
6106
6101
|
"optional": true,
|
@@ -6118,7 +6113,7 @@
|
|
6118
6113
|
"immutable": true,
|
6119
6114
|
"locationInModule": {
|
6120
6115
|
"filename": "src/types.ts",
|
6121
|
-
"line":
|
6116
|
+
"line": 471
|
6122
6117
|
},
|
6123
6118
|
"name": "respectPrimaryKeyAttributesOnConnectionField",
|
6124
6119
|
"optional": true,
|
@@ -6136,7 +6131,7 @@
|
|
6136
6131
|
"immutable": true,
|
6137
6132
|
"locationInModule": {
|
6138
6133
|
"filename": "src/types.ts",
|
6139
|
-
"line":
|
6134
|
+
"line": 432
|
6140
6135
|
},
|
6141
6136
|
"name": "sandboxModeEnabled",
|
6142
6137
|
"optional": true,
|
@@ -6157,7 +6152,7 @@
|
|
6157
6152
|
"immutable": true,
|
6158
6153
|
"locationInModule": {
|
6159
6154
|
"filename": "src/types.ts",
|
6160
|
-
"line":
|
6155
|
+
"line": 458
|
6161
6156
|
},
|
6162
6157
|
"name": "secondaryKeyAsGSI",
|
6163
6158
|
"optional": true,
|
@@ -6178,7 +6173,7 @@
|
|
6178
6173
|
"immutable": true,
|
6179
6174
|
"locationInModule": {
|
6180
6175
|
"filename": "src/types.ts",
|
6181
|
-
"line":
|
6176
|
+
"line": 419
|
6182
6177
|
},
|
6183
6178
|
"name": "shouldDeepMergeDirectiveConfigDefaults",
|
6184
6179
|
"optional": true,
|
@@ -6197,7 +6192,7 @@
|
|
6197
6192
|
"immutable": true,
|
6198
6193
|
"locationInModule": {
|
6199
6194
|
"filename": "src/types.ts",
|
6200
|
-
"line":
|
6195
|
+
"line": 452
|
6201
6196
|
},
|
6202
6197
|
"name": "suppressApiKeyGeneration",
|
6203
6198
|
"optional": true,
|
@@ -6205,24 +6200,6 @@
|
|
6205
6200
|
"primitive": "boolean"
|
6206
6201
|
}
|
6207
6202
|
},
|
6208
|
-
{
|
6209
|
-
"abstract": true,
|
6210
|
-
"docs": {
|
6211
|
-
"default": "false",
|
6212
|
-
"stability": "experimental",
|
6213
|
-
"summary": "When enabled, amplify DynamoDB table will be generated instead of CFN pre-defined DynamoDB table."
|
6214
|
-
},
|
6215
|
-
"immutable": true,
|
6216
|
-
"locationInModule": {
|
6217
|
-
"filename": "src/types.ts",
|
6218
|
-
"line": 495
|
6219
|
-
},
|
6220
|
-
"name": "useAmplifyManagedTableResources",
|
6221
|
-
"optional": true,
|
6222
|
-
"type": {
|
6223
|
-
"primitive": "boolean"
|
6224
|
-
}
|
6225
|
-
},
|
6226
6203
|
{
|
6227
6204
|
"abstract": true,
|
6228
6205
|
"docs": {
|
@@ -6233,7 +6210,7 @@
|
|
6233
6210
|
"immutable": true,
|
6234
6211
|
"locationInModule": {
|
6235
6212
|
"filename": "src/types.ts",
|
6236
|
-
"line":
|
6213
|
+
"line": 439
|
6237
6214
|
},
|
6238
6215
|
"name": "useSubUsernameForDefaultIdentityClaim",
|
6239
6216
|
"optional": true,
|
@@ -6409,12 +6386,15 @@
|
|
6409
6386
|
{
|
6410
6387
|
"abstract": true,
|
6411
6388
|
"docs": {
|
6412
|
-
"
|
6389
|
+
"default": "false",
|
6390
|
+
"remarks": "Not recommended for use, prefer\nto use `Object.values(resources.additionalResources['AWS::Elasticsearch::Domain']).forEach((domain: CfnDomain) => {\n domain.NodeToNodeEncryptionOptions = { Enabled: True };\n});",
|
6391
|
+
"stability": "stable",
|
6392
|
+
"summary": "If enabled, set nodeToNodeEncryption on the searchable domain (if one exists)."
|
6413
6393
|
},
|
6414
6394
|
"immutable": true,
|
6415
6395
|
"locationInModule": {
|
6416
6396
|
"filename": "src/types.ts",
|
6417
|
-
"line":
|
6397
|
+
"line": 402
|
6418
6398
|
},
|
6419
6399
|
"name": "enableSearchNodeToNodeEncryption",
|
6420
6400
|
"type": {
|
@@ -6431,7 +6411,7 @@
|
|
6431
6411
|
"immutable": true,
|
6432
6412
|
"locationInModule": {
|
6433
6413
|
"filename": "src/types.ts",
|
6434
|
-
"line":
|
6414
|
+
"line": 408
|
6435
6415
|
},
|
6436
6416
|
"name": "enableTransformerCfnOutputs",
|
6437
6417
|
"type": {
|
@@ -6547,23 +6527,6 @@
|
|
6547
6527
|
"primitive": "boolean"
|
6548
6528
|
}
|
6549
6529
|
},
|
6550
|
-
{
|
6551
|
-
"abstract": true,
|
6552
|
-
"docs": {
|
6553
|
-
"default": "false",
|
6554
|
-
"stability": "experimental",
|
6555
|
-
"summary": "Used for AmplifyGrapqhlApi construct ONLY If enabled, the table resources will be generated under custom resource provider, which enables the multiple GSI updates within one deployment phase."
|
6556
|
-
},
|
6557
|
-
"immutable": true,
|
6558
|
-
"locationInModule": {
|
6559
|
-
"filename": "src/types.ts",
|
6560
|
-
"line": 402
|
6561
|
-
},
|
6562
|
-
"name": "useAmplifyManagedTableResources",
|
6563
|
-
"type": {
|
6564
|
-
"primitive": "boolean"
|
6565
|
-
}
|
6566
|
-
},
|
6567
6530
|
{
|
6568
6531
|
"abstract": true,
|
6569
6532
|
"docs": {
|
@@ -6619,6 +6582,6 @@
|
|
6619
6582
|
"symbolId": "src/types:UserPoolAuthorizationConfig"
|
6620
6583
|
}
|
6621
6584
|
},
|
6622
|
-
"version": "1.2.0
|
6623
|
-
"fingerprint": "
|
6585
|
+
"version": "1.2.0",
|
6586
|
+
"fingerprint": "wNI2JSXQS+NuWPTWm+ahgREDxbVRpN3vz87qM+auEAM="
|
6624
6587
|
}
|