@aws-amplify/graphql-api-construct 1.3.0 → 1.4.0-nov-14-cut.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (537) hide show
  1. package/.jsii +1425 -248
  2. package/API.md +118 -1
  3. package/CHANGELOG.md +17 -0
  4. package/README.md +1055 -116
  5. package/lib/amplify-dynamodb-table-wrapper.d.ts +128 -0
  6. package/lib/amplify-dynamodb-table-wrapper.js +102 -0
  7. package/lib/amplify-graphql-api.d.ts +11 -0
  8. package/lib/amplify-graphql-api.js +76 -6
  9. package/lib/amplify-graphql-definition.d.ts +32 -4
  10. package/lib/amplify-graphql-definition.js +71 -7
  11. package/lib/index.d.ts +2 -1
  12. package/lib/index.js +5 -2
  13. package/lib/internal/construct-exports.js +8 -1
  14. package/lib/internal/data-source-config.d.ts +11 -0
  15. package/lib/internal/data-source-config.js +49 -0
  16. package/lib/internal/default-parameters.js +2 -1
  17. package/lib/internal/index.d.ts +1 -1
  18. package/lib/internal/index.js +2 -2
  19. package/lib/internal/model-type-name.d.ts +8 -0
  20. package/lib/internal/model-type-name.js +37 -0
  21. package/lib/sql-model-datasource-strategy.d.ts +25 -0
  22. package/lib/sql-model-datasource-strategy.js +57 -0
  23. package/lib/types.d.ts +167 -7
  24. package/lib/types.js +1 -1
  25. package/node_modules/@aws-amplify/backend-output-schemas/lib/auth/index.js +7 -9
  26. package/node_modules/@aws-amplify/backend-output-schemas/lib/auth/v1.js +15 -18
  27. package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/index.js +10 -16
  28. package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/v1.js +22 -20
  29. package/node_modules/@aws-amplify/backend-output-schemas/lib/index.d.ts +12 -1
  30. package/node_modules/@aws-amplify/backend-output-schemas/lib/index.js +37 -63
  31. package/node_modules/@aws-amplify/backend-output-schemas/lib/platform/index.js +16 -14
  32. package/node_modules/@aws-amplify/backend-output-schemas/lib/platform/stack_metadata_schemas.js +7 -11
  33. package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.d.ts +5 -0
  34. package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.js +7 -9
  35. package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.d.ts +5 -0
  36. package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.js +9 -11
  37. package/node_modules/@aws-amplify/backend-output-schemas/lib/storage/index.js +7 -9
  38. package/node_modules/@aws-amplify/backend-output-schemas/lib/storage/v1.js +9 -12
  39. package/node_modules/@aws-amplify/backend-output-schemas/package.json +4 -23
  40. package/node_modules/@aws-amplify/backend-output-storage/lib/index.d.ts +1 -0
  41. package/node_modules/@aws-amplify/backend-output-storage/lib/index.js +17 -14
  42. package/node_modules/@aws-amplify/backend-output-storage/lib/stack_metadata_output_storage_strategy.js +28 -32
  43. package/node_modules/@aws-amplify/backend-output-storage/lib/store_attribution_metadata.d.ts +50 -0
  44. package/node_modules/@aws-amplify/backend-output-storage/lib/store_attribution_metadata.js +104 -0
  45. package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/backend_deployment_type.d.ts +5 -0
  46. package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/backend_deployment_type.js +9 -0
  47. package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.d.ts +9 -0
  48. package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.js +13 -0
  49. package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/index.d.ts +4 -0
  50. package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/index.js +22 -0
  51. package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/unique_backend_identifier.d.ts +53 -0
  52. package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/unique_backend_identifier.js +74 -0
  53. package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/package.json +23 -0
  54. package/node_modules/@aws-amplify/backend-output-storage/package.json +6 -4
  55. package/node_modules/@aws-amplify/graphql-auth-transformer/API.md +5 -1
  56. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +16 -0
  57. package/node_modules/@aws-amplify/graphql-auth-transformer/LICENSE +201 -0
  58. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts +3 -1
  59. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map +1 -1
  60. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +64 -50
  61. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
  62. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.d.ts.map +1 -1
  63. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js +3 -0
  64. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js.map +1 -1
  65. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/schema.d.ts.map +1 -1
  66. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/schema.js.map +1 -1
  67. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.d.ts +3 -2
  68. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.d.ts.map +1 -1
  69. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.js +4 -1
  70. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.js.map +1 -1
  71. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.d.ts +20 -0
  72. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.d.ts.map +1 -0
  73. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.js +24 -0
  74. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/ddb-vtl-generator.js.map +1 -0
  75. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/field.d.ts +1 -1
  76. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/field.d.ts.map +1 -0
  77. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/field.js +1 -1
  78. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/field.js.map +1 -0
  79. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/helpers.d.ts +1 -1
  80. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/helpers.d.ts.map +1 -0
  81. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/helpers.js +1 -1
  82. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/helpers.js.map +1 -0
  83. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/index.d.ts.map +1 -0
  84. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/index.js.map +1 -0
  85. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.create.d.ts +1 -1
  86. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.create.d.ts.map +1 -0
  87. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.create.js +1 -1
  88. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.create.js.map +1 -0
  89. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.delete.d.ts +1 -1
  90. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.delete.d.ts.map +1 -0
  91. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.delete.js +1 -1
  92. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.delete.js.map +1 -0
  93. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.update.d.ts +1 -1
  94. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.update.d.ts.map +1 -0
  95. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/mutation.update.js +1 -1
  96. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/mutation.update.js.map +1 -0
  97. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/query.d.ts +6 -0
  98. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/query.d.ts.map +1 -0
  99. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/query.js +28 -3
  100. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/query.js.map +1 -0
  101. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/search.d.ts +1 -1
  102. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/search.d.ts.map +1 -0
  103. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/search.js +1 -1
  104. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/search.js.map +1 -0
  105. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/subscriptions.d.ts +3 -0
  106. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/subscriptions.d.ts.map +1 -0
  107. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/subscriptions.js +1 -1
  108. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/ddb/resolvers/subscriptions.js.map +1 -0
  109. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.d.ts +20 -0
  110. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.d.ts.map +1 -0
  111. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.js +24 -0
  112. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/rds-vtl-generator.js.map +1 -0
  113. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.d.ts +13 -0
  114. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.d.ts.map +1 -0
  115. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.js +157 -0
  116. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/common.js.map +1 -0
  117. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/index.d.ts +5 -0
  118. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/index.d.ts.map +1 -0
  119. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/index.js +21 -0
  120. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/index.js.map +1 -0
  121. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/mutation.d.ts +8 -0
  122. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/mutation.d.ts.map +1 -0
  123. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/mutation.js +56 -0
  124. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/mutation.js.map +1 -0
  125. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.d.ts +8 -0
  126. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.d.ts.map +1 -0
  127. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js +41 -0
  128. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js.map +1 -0
  129. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers/subscriptions.d.ts → vtl-generator/rds/resolvers/subscription.d.ts} +2 -2
  130. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/subscription.d.ts.map +1 -0
  131. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/subscription.js +18 -0
  132. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/subscription.js.map +1 -0
  133. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/vtl-generator.d.ts +19 -0
  134. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/vtl-generator.d.ts.map +1 -0
  135. package/node_modules/@aws-amplify/{graphql-transformer-core/lib/config/project-config.js → graphql-auth-transformer/lib/vtl-generator/vtl-generator.js} +1 -1
  136. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/vtl-generator.js.map +1 -0
  137. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +11 -10
  138. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +6 -0
  139. package/node_modules/@aws-amplify/graphql-default-value-transformer/LICENSE +201 -0
  140. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.d.ts.map +1 -1
  141. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.js +13 -1
  142. package/node_modules/@aws-amplify/graphql-default-value-transformer/lib/graphql-default-value-transformer.js.map +1 -1
  143. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +8 -7
  144. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  145. package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +201 -0
  146. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +7 -6
  147. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  148. package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +201 -0
  149. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +7 -6
  150. package/node_modules/@aws-amplify/graphql-index-transformer/API.md +4 -1
  151. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +9 -0
  152. package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +201 -0
  153. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-index-transformer.js +4 -0
  154. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-index-transformer.js.map +1 -1
  155. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.d.ts +1 -1
  156. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.d.ts.map +1 -1
  157. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.js +7 -7
  158. package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.js.map +1 -1
  159. package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.d.ts +1 -1
  160. package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.d.ts.map +1 -1
  161. package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.js +2 -1
  162. package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.js.map +1 -1
  163. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  164. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/generators/rds-vtl-generator.js +4 -1
  165. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  166. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts +19 -18
  167. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts.map +1 -1
  168. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js +161 -120
  169. package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js.map +1 -1
  170. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +8 -7
  171. package/node_modules/@aws-amplify/graphql-maps-to-transformer/API.md +15 -0
  172. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +12 -0
  173. package/node_modules/@aws-amplify/graphql-maps-to-transformer/LICENSE +201 -0
  174. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  175. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/field-mapping-resolvers.d.ts +1 -0
  176. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/field-mapping-resolvers.d.ts.map +1 -1
  177. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/field-mapping-resolvers.js +13 -1
  178. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/field-mapping-resolvers.js.map +1 -1
  179. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.d.ts +2 -1
  180. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.d.ts.map +1 -1
  181. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.js +16 -33
  182. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-maps-to-transformer.js.map +1 -1
  183. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-name-mapping.d.ts +10 -0
  184. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-name-mapping.d.ts.map +1 -0
  185. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-name-mapping.js +102 -0
  186. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-name-mapping.js.map +1 -0
  187. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.d.ts +13 -0
  188. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.d.ts.map +1 -0
  189. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.js +81 -0
  190. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/graphql-refers-to-transformer.js.map +1 -0
  191. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/index.d.ts +1 -0
  192. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/index.d.ts.map +1 -1
  193. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/index.js +3 -1
  194. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/index.js.map +1 -1
  195. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +13 -12
  196. package/node_modules/@aws-amplify/graphql-model-transformer/API.md +15 -15
  197. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +21 -0
  198. package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +201 -0
  199. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts +2 -1
  200. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts.map +1 -1
  201. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js +72 -52
  202. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js.map +1 -1
  203. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.d.ts.map +1 -1
  204. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.js +9 -2
  205. package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.js.map +1 -1
  206. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  207. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  208. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  209. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/dynamodb-vtl-generator.d.ts +6 -5
  210. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
  211. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/dynamodb-vtl-generator.js +5 -5
  212. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
  213. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.d.ts +6 -5
  214. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  215. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.js +11 -11
  216. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  217. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/vtl-generator.d.ts +6 -5
  218. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
  219. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.d.ts +4 -3
  220. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.d.ts.map +1 -1
  221. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.js +74 -55
  222. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/mutation.js.map +1 -1
  223. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/query.d.ts +2 -1
  224. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/query.d.ts.map +1 -1
  225. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/query.js +8 -2
  226. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/query.js.map +1 -1
  227. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts +11 -4
  228. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
  229. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +141 -45
  230. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
  231. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts +13 -0
  232. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts.map +1 -0
  233. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js +171 -0
  234. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js.map +1 -0
  235. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts +41 -0
  236. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts.map +1 -0
  237. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js +243 -0
  238. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js.map +1 -0
  239. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts +12 -0
  240. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts.map +1 -0
  241. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js +686 -0
  242. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js.map +1 -0
  243. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.d.ts +5 -2
  244. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
  245. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js +47 -60
  246. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js.map +1 -1
  247. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js +5 -5
  248. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/model-resource-generator.js.map +1 -1
  249. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts +1 -0
  250. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  251. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +29 -2
  252. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
  253. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +12 -9
  254. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  255. package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +201 -0
  256. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  257. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +7 -6
  258. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +10 -0
  259. package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +201 -0
  260. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.d.ts.map +1 -1
  261. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js +41 -9
  262. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js.map +1 -1
  263. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.d.ts.map +1 -1
  264. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js +35 -8
  265. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js.map +1 -1
  266. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.d.ts.map +1 -1
  267. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js +30 -8
  268. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js.map +1 -1
  269. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.d.ts.map +1 -1
  270. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js +3 -2
  271. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-many-to-many-transformer.js.map +1 -1
  272. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.d.ts +13 -0
  273. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.d.ts.map +1 -0
  274. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js +171 -0
  275. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/ddb-generator.js.map +1 -0
  276. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.d.ts +4 -0
  277. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.d.ts.map +1 -0
  278. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.js +18 -0
  279. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator-factory.js.map +1 -0
  280. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.d.ts +8 -0
  281. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.d.ts.map +1 -0
  282. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.js +7 -0
  283. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/generator.js.map +1 -0
  284. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.d.ts +14 -0
  285. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.d.ts.map +1 -0
  286. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.js +115 -0
  287. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolver/rds-generator.js.map +1 -0
  288. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts +5 -5
  289. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts.map +1 -1
  290. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js +26 -179
  291. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js.map +1 -1
  292. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.d.ts.map +1 -1
  293. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js +14 -8
  294. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js.map +1 -1
  295. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts +4 -0
  296. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/types.d.ts.map +1 -1
  297. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts +5 -0
  298. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.d.ts.map +1 -1
  299. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js +85 -1
  300. package/node_modules/@aws-amplify/graphql-relational-transformer/lib/utils.js.map +1 -1
  301. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +10 -9
  302. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +6 -0
  303. package/node_modules/@aws-amplify/graphql-searchable-transformer/LICENSE +201 -0
  304. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.d.ts.map +1 -1
  305. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js +3 -0
  306. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/graphql-searchable-transformer.js.map +1 -1
  307. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  308. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +8 -7
  309. package/node_modules/@aws-amplify/graphql-sql-transformer/API.md +26 -0
  310. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +10 -0
  311. package/node_modules/@aws-amplify/graphql-sql-transformer/LICENSE +201 -0
  312. package/node_modules/@aws-amplify/graphql-sql-transformer/README.md +13 -0
  313. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.d.ts +12 -0
  314. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.d.ts.map +1 -0
  315. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js +132 -0
  316. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js.map +1 -0
  317. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.d.ts +2 -0
  318. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.d.ts.map +1 -0
  319. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.js +6 -0
  320. package/node_modules/@aws-amplify/graphql-sql-transformer/lib/index.js.map +1 -0
  321. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +71 -0
  322. package/node_modules/@aws-amplify/graphql-transformer/API.md +6 -2
  323. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +15 -0
  324. package/node_modules/@aws-amplify/graphql-transformer/LICENSE +201 -0
  325. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +6 -3
  326. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
  327. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +7 -2
  328. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
  329. package/node_modules/@aws-amplify/graphql-transformer/package.json +16 -14
  330. package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +15 -10
  331. package/node_modules/@aws-amplify/graphql-transformer-core/API.md +41 -15
  332. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +19 -0
  333. package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +201 -0
  334. package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/index.d.ts +0 -1
  335. package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/index.d.ts.map +1 -1
  336. package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/index.js.map +1 -1
  337. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +4 -4
  338. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
  339. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +11 -1
  340. package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
  341. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.d.ts.map +1 -1
  342. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js +2 -1
  343. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transform-host.js.map +1 -1
  344. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.d.ts +1 -0
  345. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.d.ts.map +1 -1
  346. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.js +3 -1
  347. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.js.map +1 -1
  348. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/sync-utils.d.ts.map +1 -1
  349. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/sync-utils.js.map +1 -1
  350. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts +4 -3
  351. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts.map +1 -1
  352. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js +3 -3
  353. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js.map +1 -1
  354. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts +3 -3
  355. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts.map +1 -1
  356. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.d.ts +2 -1
  357. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.d.ts.map +1 -1
  358. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.js +12 -1
  359. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.js.map +1 -1
  360. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/datasource.d.ts +4 -5
  361. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/datasource.d.ts.map +1 -1
  362. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/datasource.js.map +1 -1
  363. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts +6 -5
  364. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts.map +1 -1
  365. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js +3 -1
  366. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js.map +1 -1
  367. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.d.ts.map +1 -1
  368. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js +1 -0
  369. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js.map +1 -1
  370. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.d.ts +5 -4
  371. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.d.ts.map +1 -1
  372. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.js +3 -2
  373. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/import-appsync-api-types.js.map +1 -1
  374. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.d.ts +1 -1
  375. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.d.ts.map +1 -1
  376. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.js +2 -1
  377. package/node_modules/@aws-amplify/graphql-transformer-core/lib/types/index.js.map +1 -1
  378. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.d.ts +2 -0
  379. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.d.ts.map +1 -0
  380. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.js +5 -0
  381. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/api-category.js.map +1 -0
  382. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts +4 -2
  383. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts.map +1 -1
  384. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js +16 -3
  385. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js.map +1 -1
  386. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts +3 -0
  387. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts.map +1 -0
  388. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js +19 -0
  389. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js.map +1 -0
  390. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.d.ts +3 -0
  391. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.d.ts.map +1 -0
  392. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.js +15 -0
  393. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.js.map +1 -0
  394. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts +12 -0
  395. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.d.ts.map +1 -0
  396. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js +82 -0
  397. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-util.js.map +1 -0
  398. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.d.ts +3 -2
  399. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.d.ts.map +1 -1
  400. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.js +7 -1
  401. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/schema-utils.js.map +1 -1
  402. package/node_modules/@aws-amplify/graphql-transformer-core/lib/wrappers/object-definition-wrapper.d.ts +1 -1
  403. package/node_modules/@aws-amplify/graphql-transformer-core/lib/wrappers/object-definition-wrapper.d.ts.map +1 -1
  404. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +5 -4
  405. package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +69 -15
  406. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +11 -0
  407. package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +201 -0
  408. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts +15 -8
  409. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts.map +1 -1
  410. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.js.map +1 -1
  411. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts +1 -1
  412. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts.map +1 -1
  413. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.js.map +1 -1
  414. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts +1 -1
  415. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts.map +1 -1
  416. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js +3 -1
  417. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js.map +1 -1
  418. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts +1 -0
  419. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts.map +1 -1
  420. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts +5 -3
  421. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts.map +1 -1
  422. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts +15 -5
  423. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts.map +1 -1
  424. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js +10 -1
  425. package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js.map +1 -1
  426. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +3 -2
  427. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/graphql-api-provider.ts +38 -11
  428. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/index.ts +3 -0
  429. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/index.ts +6 -0
  430. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transform-parameters.ts +1 -0
  431. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-context-provider.ts +11 -3
  432. package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-datasource-provider.ts +41 -5
  433. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  434. package/node_modules/@aws-amplify/platform-core/lib/backend_deployment_type.d.ts +5 -0
  435. package/node_modules/@aws-amplify/platform-core/lib/backend_deployment_type.js +9 -0
  436. package/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.d.ts +9 -0
  437. package/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.js +13 -0
  438. package/node_modules/@aws-amplify/platform-core/lib/index.d.ts +4 -0
  439. package/node_modules/@aws-amplify/platform-core/lib/index.js +22 -0
  440. package/node_modules/@aws-amplify/platform-core/lib/unique_backend_identifier.d.ts +53 -0
  441. package/node_modules/@aws-amplify/platform-core/lib/unique_backend_identifier.js +74 -0
  442. package/node_modules/@aws-amplify/platform-core/package.json +24 -0
  443. package/node_modules/@aws-amplify/plugin-types/lib/amplify_function.d.ts +4 -0
  444. package/node_modules/@aws-amplify/plugin-types/lib/amplify_function.js +3 -0
  445. package/node_modules/@aws-amplify/plugin-types/lib/amplify_output_writer.d.ts +9 -0
  446. package/node_modules/@aws-amplify/plugin-types/lib/amplify_output_writer.js +3 -0
  447. package/node_modules/@aws-amplify/plugin-types/lib/auth_resources.d.ts +42 -0
  448. package/node_modules/@aws-amplify/plugin-types/lib/auth_resources.js +3 -0
  449. package/node_modules/@aws-amplify/plugin-types/lib/backend_output.d.ts +6 -0
  450. package/node_modules/@aws-amplify/plugin-types/lib/backend_output.js +3 -0
  451. package/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.d.ts +13 -0
  452. package/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.js +3 -0
  453. package/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.d.ts +8 -0
  454. package/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.js +3 -0
  455. package/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.d.ts +7 -0
  456. package/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.js +3 -0
  457. package/node_modules/@aws-amplify/plugin-types/lib/construct_container.d.ts +26 -0
  458. package/node_modules/@aws-amplify/plugin-types/lib/construct_container.js +3 -0
  459. package/node_modules/@aws-amplify/plugin-types/lib/construct_factory.d.ts +21 -0
  460. package/node_modules/@aws-amplify/plugin-types/lib/construct_factory.js +3 -0
  461. package/node_modules/@aws-amplify/plugin-types/lib/function_resources.d.ts +5 -0
  462. package/node_modules/@aws-amplify/plugin-types/lib/function_resources.js +3 -0
  463. package/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.d.ts +14 -0
  464. package/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.js +3 -0
  465. package/node_modules/@aws-amplify/plugin-types/lib/index.d.ts +16 -0
  466. package/node_modules/@aws-amplify/plugin-types/lib/index.js +32 -0
  467. package/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.d.ts +11 -0
  468. package/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.js +3 -0
  469. package/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.d.ts +8 -0
  470. package/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.js +3 -0
  471. package/node_modules/@aws-amplify/plugin-types/lib/resource_provider.d.ts +7 -0
  472. package/node_modules/@aws-amplify/plugin-types/lib/resource_provider.js +3 -0
  473. package/node_modules/@aws-amplify/plugin-types/lib/unique_backend_identifier.d.ts +25 -0
  474. package/node_modules/@aws-amplify/plugin-types/lib/unique_backend_identifier.js +3 -0
  475. package/node_modules/@aws-amplify/plugin-types/package.json +20 -0
  476. package/node_modules/graphql-transformer-common/API.md +25 -0
  477. package/node_modules/graphql-transformer-common/CHANGELOG.md +13 -0
  478. package/node_modules/graphql-transformer-common/LICENSE +201 -0
  479. package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts +4 -0
  480. package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts.map +1 -1
  481. package/node_modules/graphql-transformer-common/lib/ResourceConstants.js +4 -0
  482. package/node_modules/graphql-transformer-common/lib/ResourceConstants.js.map +1 -1
  483. package/node_modules/graphql-transformer-common/lib/definition.d.ts +9 -2
  484. package/node_modules/graphql-transformer-common/lib/definition.d.ts.map +1 -1
  485. package/node_modules/graphql-transformer-common/lib/definition.js +52 -1
  486. package/node_modules/graphql-transformer-common/lib/definition.js.map +1 -1
  487. package/node_modules/graphql-transformer-common/lib/util.d.ts.map +1 -1
  488. package/node_modules/graphql-transformer-common/lib/util.js +3 -1
  489. package/node_modules/graphql-transformer-common/lib/util.js.map +1 -1
  490. package/node_modules/graphql-transformer-common/package.json +6 -5
  491. package/package.json +39 -37
  492. package/src/amplify-dynamodb-table-wrapper.ts +177 -0
  493. package/src/amplify-graphql-api.ts +91 -7
  494. package/src/amplify-graphql-definition.ts +78 -5
  495. package/src/index.ts +22 -0
  496. package/src/internal/construct-exports.ts +7 -0
  497. package/src/internal/data-source-config.ts +57 -0
  498. package/src/internal/default-parameters.ts +1 -0
  499. package/src/internal/index.ts +1 -1
  500. package/src/internal/model-type-name.ts +39 -0
  501. package/src/sql-model-datasource-strategy.ts +62 -0
  502. package/src/types.ts +199 -7
  503. package/babel.config.js +0 -13
  504. package/lib/internal/amplify-metadata.d.ts +0 -6
  505. package/lib/internal/amplify-metadata.js +0 -58
  506. package/node_modules/@aws-amplify/backend-output-schemas/lib/index.internal.d.ts +0 -3
  507. package/node_modules/@aws-amplify/backend-output-schemas/lib/index.internal.js +0 -27
  508. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.d.ts.map +0 -1
  509. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/field.js.map +0 -1
  510. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.d.ts.map +0 -1
  511. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/helpers.js.map +0 -1
  512. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/index.d.ts.map +0 -1
  513. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/index.js.map +0 -1
  514. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.d.ts.map +0 -1
  515. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.create.js.map +0 -1
  516. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.d.ts.map +0 -1
  517. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.delete.js.map +0 -1
  518. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.d.ts.map +0 -1
  519. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/mutation.update.js.map +0 -1
  520. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.d.ts +0 -6
  521. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.d.ts.map +0 -1
  522. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/query.js.map +0 -1
  523. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.d.ts.map +0 -1
  524. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/search.js.map +0 -1
  525. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.d.ts.map +0 -1
  526. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/resolvers/subscriptions.js.map +0 -1
  527. package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/project-config.d.ts +0 -6
  528. package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/project-config.d.ts.map +0 -1
  529. package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/project-config.js.map +0 -1
  530. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.d.ts +0 -2
  531. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.d.ts.map +0 -1
  532. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.js +0 -25
  533. package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/rds-secret-utils.js.map +0 -1
  534. package/remove-module-type-from-package-json.ts +0 -19
  535. package/src/internal/amplify-metadata.ts +0 -58
  536. /package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/index.d.ts +0 -0
  537. /package/node_modules/@aws-amplify/graphql-auth-transformer/lib/{resolvers → vtl-generator/ddb/resolvers}/index.js +0 -0
package/.jsii CHANGED
@@ -6,28 +6,31 @@
6
6
  ]
7
7
  },
8
8
  "bundled": {
9
- "@aws-amplify/backend-output-schemas": "^0.2.0-alpha.6",
10
- "@aws-amplify/backend-output-storage": "^0.1.1-alpha.2",
11
- "@aws-amplify/graphql-auth-transformer": "3.1.10",
12
- "@aws-amplify/graphql-default-value-transformer": "2.1.8",
13
- "@aws-amplify/graphql-function-transformer": "2.1.7",
14
- "@aws-amplify/graphql-http-transformer": "2.1.7",
15
- "@aws-amplify/graphql-index-transformer": "2.1.8",
16
- "@aws-amplify/graphql-maps-to-transformer": "3.2.5",
17
- "@aws-amplify/graphql-model-transformer": "2.2.4",
18
- "@aws-amplify/graphql-predictions-transformer": "2.1.7",
19
- "@aws-amplify/graphql-relational-transformer": "2.1.8",
20
- "@aws-amplify/graphql-searchable-transformer": "2.2.4",
21
- "@aws-amplify/graphql-transformer": "1.2.6",
22
- "@aws-amplify/graphql-transformer-core": "2.2.4",
23
- "@aws-amplify/graphql-transformer-interfaces": "3.2.2",
9
+ "@aws-amplify/backend-output-schemas": "^0.2.1",
10
+ "@aws-amplify/backend-output-storage": "^0.2.0",
11
+ "@aws-amplify/graphql-auth-transformer": "3.2.0-nov-14-cut.0",
12
+ "@aws-amplify/graphql-default-value-transformer": "2.1.9-nov-14-cut.0",
13
+ "@aws-amplify/graphql-function-transformer": "2.1.8-nov-14-cut.0",
14
+ "@aws-amplify/graphql-http-transformer": "2.1.8-nov-14-cut.0",
15
+ "@aws-amplify/graphql-index-transformer": "2.2.0-nov-14-cut.0",
16
+ "@aws-amplify/graphql-maps-to-transformer": "3.3.0-nov-14-cut.0",
17
+ "@aws-amplify/graphql-model-transformer": "2.3.0-nov-14-cut.0",
18
+ "@aws-amplify/graphql-predictions-transformer": "2.1.8-nov-14-cut.0",
19
+ "@aws-amplify/graphql-relational-transformer": "2.2.0-nov-14-cut.0",
20
+ "@aws-amplify/graphql-searchable-transformer": "2.3.0-nov-14-cut.0",
21
+ "@aws-amplify/graphql-sql-transformer": "0.1.0-nov-14-cut.0",
22
+ "@aws-amplify/graphql-transformer": "1.3.0-nov-14-cut.0",
23
+ "@aws-amplify/graphql-transformer-core": "2.3.0-nov-14-cut.0",
24
+ "@aws-amplify/graphql-transformer-interfaces": "3.3.0-nov-14-cut.0",
25
+ "@aws-amplify/platform-core": "^0.1.3",
26
+ "@aws-amplify/plugin-types": "^0.3.0",
24
27
  "charenc": "^0.0.2",
25
28
  "crypt": "^0.0.2",
26
29
  "fs-extra": "^8.1.0",
27
30
  "graceful-fs": "^4.2.11",
28
31
  "graphql": "^15.5.0",
29
32
  "graphql-mapping-template": "4.20.12",
30
- "graphql-transformer-common": "4.25.1",
33
+ "graphql-transformer-common": "4.26.0-nov-14-cut.0",
31
34
  "hjson": "^3.2.2",
32
35
  "immer": "^9.0.12",
33
36
  "is-buffer": "^2.0.5",
@@ -3487,7 +3490,7 @@
3487
3490
  "stability": "stable"
3488
3491
  },
3489
3492
  "homepage": "https://github.com/aws-amplify/amplify-category-api.git",
3490
- "jsiiVersion": "5.1.12 (build 0675712)",
3493
+ "jsiiVersion": "5.2.14 (build 3ac02dc)",
3491
3494
  "keywords": [
3492
3495
  "awscdk",
3493
3496
  "aws-cdk",
@@ -3508,7 +3511,7 @@
3508
3511
  },
3509
3512
  "name": "@aws-amplify/graphql-api-construct",
3510
3513
  "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\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- *Deprecated:* , use iamConfig.allowListedRoles instead.\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| <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.allowListedRoles\">allowListedRoles</a></code> | <code>string \\| aws-cdk-lib.aws_iam.IRole[]</code> | A list of IAM roles which will be granted full read/write access to the generated model if IAM auth is enabled. |\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##### `allowListedRoles`<sup>Optional</sup> <a name=\"allowListedRoles\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.allowListedRoles\"></a>\n\n```typescript\npublic readonly allowListedRoles: string | IRole[];\n```\n\n- *Type:* string | aws-cdk-lib.aws_iam.IRole[]\n\nA list of IAM roles which will be granted full read/write access to the generated model if IAM auth is enabled.\n\nIf an IRole is provided, the role `name` will be used for matching.\nIf a string is provided, the raw value will be used for matching.\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"
3514
+ "markdown": "# Amplify Graphql API Construct\n\n[![View on Construct Hub](https://constructs.dev/badge?package=%40aws-amplify%2Fgraphql-api-construct)](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 files, 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> **NOTE** The 'dataSourceStrategies' configuration option is in preview and is not recommended to use with production systems.\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### AmplifyDynamoDbModelDataSourceStrategy <a name=\"AmplifyDynamoDbModelDataSourceStrategy\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy\"></a>\n\nUse custom resource type 'Custom::AmplifyDynamoDBTable' to provision table.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy.Initializer\"></a>\n\n```typescript\nimport { AmplifyDynamoDbModelDataSourceStrategy } from '@aws-amplify/graphql-api-construct'\n\nconst amplifyDynamoDbModelDataSourceStrategy: AmplifyDynamoDbModelDataSourceStrategy = { ... }\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.AmplifyDynamoDbModelDataSourceStrategy.property.dbType\">dbType</a></code> | <code>string</code> | *No description.* |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy.property.provisionStrategy\">provisionStrategy</a></code> | <code>string</code> | *No description.* |\n\n---\n\n##### `dbType`<sup>Required</sup> <a name=\"dbType\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy.property.dbType\"></a>\n\n```typescript\npublic readonly dbType: string;\n```\n\n- *Type:* string\n\n---\n\n##### `provisionStrategy`<sup>Required</sup> <a name=\"provisionStrategy\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy.property.provisionStrategy\"></a>\n\n```typescript\npublic readonly provisionStrategy: string;\n```\n\n- *Type:* string\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.amplifyDynamoDbTables\">amplifyDynamoDbTables</a></code> | <code>{[ key: string ]: <a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper\">AmplifyDynamoDbTableWrapper</a>}</code> | The Generated Amplify DynamoDb Table wrapped if produced, keyed by name. |\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##### `amplifyDynamoDbTables`<sup>Required</sup> <a name=\"amplifyDynamoDbTables\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlApiResources.property.amplifyDynamoDbTables\"></a>\n\n```typescript\npublic readonly amplifyDynamoDbTables: {[ key: string ]: AmplifyDynamoDbTableWrapper};\n```\n\n- *Type:* {[ key: string ]: <a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper\">AmplifyDynamoDbTableWrapper</a>}\n\nThe Generated Amplify DynamoDb Table wrapped if produced, keyed by name.\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- *Deprecated:* , use iamConfig.allowListedRoles instead.\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### DefaultDynamoDbModelDataSourceStrategy <a name=\"DefaultDynamoDbModelDataSourceStrategy\" id=\"@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy\"></a>\n\nUse default CloudFormation type 'AWS::DynamoDB::Table' to provision table.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy.Initializer\"></a>\n\n```typescript\nimport { DefaultDynamoDbModelDataSourceStrategy } from '@aws-amplify/graphql-api-construct'\n\nconst defaultDynamoDbModelDataSourceStrategy: DefaultDynamoDbModelDataSourceStrategy = { ... }\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.DefaultDynamoDbModelDataSourceStrategy.property.dbType\">dbType</a></code> | <code>string</code> | *No description.* |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy.property.provisionStrategy\">provisionStrategy</a></code> | <code>string</code> | *No description.* |\n\n---\n\n##### `dbType`<sup>Required</sup> <a name=\"dbType\" id=\"@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy.property.dbType\"></a>\n\n```typescript\npublic readonly dbType: string;\n```\n\n- *Type:* string\n\n---\n\n##### `provisionStrategy`<sup>Required</sup> <a name=\"provisionStrategy\" id=\"@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy.property.provisionStrategy\"></a>\n\n```typescript\npublic readonly provisionStrategy: string;\n```\n\n- *Type:* string\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| <code><a href=\"#@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.allowListedRoles\">allowListedRoles</a></code> | <code>string \\| aws-cdk-lib.aws_iam.IRole[]</code> | A list of IAM roles which will be granted full read/write access to the generated model if IAM auth is enabled. |\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##### `allowListedRoles`<sup>Optional</sup> <a name=\"allowListedRoles\" id=\"@aws-amplify/graphql-api-construct.IAMAuthorizationConfig.property.allowListedRoles\"></a>\n\n```typescript\npublic readonly allowListedRoles: string | IRole[];\n```\n\n- *Type:* string | aws-cdk-lib.aws_iam.IRole[]\n\nA list of IAM roles which will be granted full read/write access to the generated model if IAM auth is enabled.\n\nIf an IRole is provided, the role `name` will be used for matching.\nIf a string is provided, the raw value will be used for matching.\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.allowDestructiveGraphqlSchemaUpdates\">allowDestructiveGraphqlSchemaUpdates</a></code> | <code>boolean</code> | The following schema updates require replacement of the underlying DynamoDB table:. |\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##### `allowDestructiveGraphqlSchemaUpdates`<sup>Optional</sup> <a name=\"allowDestructiveGraphqlSchemaUpdates\" id=\"@aws-amplify/graphql-api-construct.PartialTranslationBehavior.property.allowDestructiveGraphqlSchemaUpdates\"></a>\n\n```typescript\npublic readonly allowDestructiveGraphqlSchemaUpdates: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nThe following schema updates require replacement of the underlying DynamoDB table:.\n\nRemoving or renaming a model\n - Modifying the primary key of a model\n - Modifying a Local Secondary Index of a model (only applies to projects with secondaryKeyAsGSI turned off)\n\nALL DATA WILL BE LOST when the table replacement happens. When enabled, destructive updates are allowed.\nThis will only affect DynamoDB tables with provision strategy \"AMPLIFY_TABLE\".\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### ProvisionedThroughput <a name=\"ProvisionedThroughput\" id=\"@aws-amplify/graphql-api-construct.ProvisionedThroughput\"></a>\n\nWrapper for provisioned throughput config in DDB.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.ProvisionedThroughput.Initializer\"></a>\n\n```typescript\nimport { ProvisionedThroughput } from '@aws-amplify/graphql-api-construct'\n\nconst provisionedThroughput: ProvisionedThroughput = { ... }\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.ProvisionedThroughput.property.readCapacityUnits\">readCapacityUnits</a></code> | <code>number</code> | The read capacity units on the table or index. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.ProvisionedThroughput.property.writeCapacityUnits\">writeCapacityUnits</a></code> | <code>number</code> | The write capacity units on the table or index. |\n\n---\n\n##### `readCapacityUnits`<sup>Required</sup> <a name=\"readCapacityUnits\" id=\"@aws-amplify/graphql-api-construct.ProvisionedThroughput.property.readCapacityUnits\"></a>\n\n```typescript\npublic readonly readCapacityUnits: number;\n```\n\n- *Type:* number\n\nThe read capacity units on the table or index.\n\n---\n\n##### `writeCapacityUnits`<sup>Required</sup> <a name=\"writeCapacityUnits\" id=\"@aws-amplify/graphql-api-construct.ProvisionedThroughput.property.writeCapacityUnits\"></a>\n\n```typescript\npublic readonly writeCapacityUnits: number;\n```\n\n- *Type:* number\n\nThe write capacity units on the table or index.\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### SQLLambdaModelDataSourceStrategy <a name=\"SQLLambdaModelDataSourceStrategy\" id=\"@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy\"></a>\n\nA strategy that creates a Lambda to connect to a pre-existing SQL table to resolve model data.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.Initializer\"></a>\n\n```typescript\nimport { SQLLambdaModelDataSourceStrategy } from '@aws-amplify/graphql-api-construct'\n\nconst sQLLambdaModelDataSourceStrategy: SQLLambdaModelDataSourceStrategy = { ... }\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.SQLLambdaModelDataSourceStrategy.property.dbConnectionConfig\">dbConnectionConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig\">SqlModelDataSourceDbConnectionConfig</a></code> | The parameters the Lambda data source will use to connect to the database. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbType\">dbType</a></code> | <code>string</code> | The type of the SQL database used to process model operations for this definition. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.name\">name</a></code> | <code>string</code> | The name of the strategy. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.customSqlStatements\">customSqlStatements</a></code> | <code>{[ key: string ]: string}</code> | Custom SQL statements. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.sqlLambdaLayerMapping\">sqlLambdaLayerMapping</a></code> | <code>{[ key: string ]: string}</code> | An optional override for the default SQL Lambda Layer. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.vpcConfiguration\">vpcConfiguration</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.VpcConfig\">VpcConfig</a></code> | The configuration of the VPC into which to install the Lambda. |\n\n---\n\n##### `dbConnectionConfig`<sup>Required</sup> <a name=\"dbConnectionConfig\" id=\"@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbConnectionConfig\"></a>\n\n```typescript\npublic readonly dbConnectionConfig: SqlModelDataSourceDbConnectionConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig\">SqlModelDataSourceDbConnectionConfig</a>\n\nThe parameters the Lambda data source will use to connect to the database.\n\n---\n\n##### `dbType`<sup>Required</sup> <a name=\"dbType\" id=\"@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.dbType\"></a>\n\n```typescript\npublic readonly dbType: string;\n```\n\n- *Type:* string\n\nThe type of the SQL database used to process model operations for this definition.\n\n---\n\n##### `name`<sup>Required</sup> <a name=\"name\" id=\"@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.name\"></a>\n\n```typescript\npublic readonly name: string;\n```\n\n- *Type:* string\n\nThe name of the strategy.\n\nThis will be used to name the AppSync DataSource itself, plus any associated resources like resolver Lambdas.\nThis name must be unique across all schema definitions in a GraphQL API.\n\n---\n\n##### `customSqlStatements`<sup>Optional</sup> <a name=\"customSqlStatements\" id=\"@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.customSqlStatements\"></a>\n\n```typescript\npublic readonly customSqlStatements: {[ key: string ]: string};\n```\n\n- *Type:* {[ key: string ]: string}\n\nCustom SQL statements.\n\nThe key is the value of the `references` attribute of the `@sql` directive in the `schema`; the value is the SQL\nto be executed.\n\n---\n\n##### `sqlLambdaLayerMapping`<sup>Optional</sup> <a name=\"sqlLambdaLayerMapping\" id=\"@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.sqlLambdaLayerMapping\"></a>\n\n```typescript\npublic readonly sqlLambdaLayerMapping: {[ key: string ]: string};\n```\n\n- *Type:* {[ key: string ]: string}\n\nAn optional override for the default SQL Lambda Layer.\n\n---\n\n##### `vpcConfiguration`<sup>Optional</sup> <a name=\"vpcConfiguration\" id=\"@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy.property.vpcConfiguration\"></a>\n\n```typescript\npublic readonly vpcConfiguration: VpcConfig;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.VpcConfig\">VpcConfig</a>\n\nThe configuration of the VPC into which to install the Lambda.\n\n---\n\n### SqlModelDataSourceDbConnectionConfig <a name=\"SqlModelDataSourceDbConnectionConfig\" id=\"@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig\"></a>\n\nThe Secure Systems Manager parameter paths the Lambda data source will use to connect to the database.\n\nThese parameters are retrieved from Secure Systems Manager in the same region as the Lambda.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.Initializer\"></a>\n\n```typescript\nimport { SqlModelDataSourceDbConnectionConfig } from '@aws-amplify/graphql-api-construct'\n\nconst sqlModelDataSourceDbConnectionConfig: SqlModelDataSourceDbConnectionConfig = { ... }\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.SqlModelDataSourceDbConnectionConfig.property.databaseNameSsmPath\">databaseNameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the database name. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.hostnameSsmPath\">hostnameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the hostname of the database. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.passwordSsmPath\">passwordSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the password to use when connecting to the database. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.portSsmPath\">portSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.usernameSsmPath\">usernameSsmPath</a></code> | <code>string</code> | The Secure Systems Manager parameter containing the username to use when connecting to the database. |\n\n---\n\n##### `databaseNameSsmPath`<sup>Required</sup> <a name=\"databaseNameSsmPath\" id=\"@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.databaseNameSsmPath\"></a>\n\n```typescript\npublic readonly databaseNameSsmPath: string;\n```\n\n- *Type:* string\n\nThe Secure Systems Manager parameter containing the database name.\n\n---\n\n##### `hostnameSsmPath`<sup>Required</sup> <a name=\"hostnameSsmPath\" id=\"@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.hostnameSsmPath\"></a>\n\n```typescript\npublic readonly hostnameSsmPath: string;\n```\n\n- *Type:* string\n\nThe Secure Systems Manager parameter containing the hostname of the database.\n\nFor RDS-based SQL data sources, this can be the hostname\nof a database proxy, cluster, or instance.\n\n---\n\n##### `passwordSsmPath`<sup>Required</sup> <a name=\"passwordSsmPath\" id=\"@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.passwordSsmPath\"></a>\n\n```typescript\npublic readonly passwordSsmPath: string;\n```\n\n- *Type:* string\n\nThe Secure Systems Manager parameter containing the password to use when connecting to the database.\n\n---\n\n##### `portSsmPath`<sup>Required</sup> <a name=\"portSsmPath\" id=\"@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.portSsmPath\"></a>\n\n```typescript\npublic readonly portSsmPath: string;\n```\n\n- *Type:* string\n\nThe Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance.\n\n---\n\n##### `usernameSsmPath`<sup>Required</sup> <a name=\"usernameSsmPath\" id=\"@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig.property.usernameSsmPath\"></a>\n\n```typescript\npublic readonly usernameSsmPath: string;\n```\n\n- *Type:* string\n\nThe Secure Systems Manager parameter containing the username to use when connecting to the database.\n\n---\n\n### SSESpecification <a name=\"SSESpecification\" id=\"@aws-amplify/graphql-api-construct.SSESpecification\"></a>\n\nRepresents the settings used to enable server-side encryption.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.SSESpecification.Initializer\"></a>\n\n```typescript\nimport { SSESpecification } from '@aws-amplify/graphql-api-construct'\n\nconst sSESpecification: SSESpecification = { ... }\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.SSESpecification.property.sseEnabled\">sseEnabled</a></code> | <code>boolean</code> | Indicates whether server-side encryption is done using an AWS managed key or an AWS owned key. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SSESpecification.property.kmsMasterKeyId\">kmsMasterKeyId</a></code> | <code>string</code> | The AWS KMS key that should be used for the AWS KMS encryption. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SSESpecification.property.sseType\">sseType</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.SSEType\">SSEType</a></code> | Server-side encryption type. |\n\n---\n\n##### `sseEnabled`<sup>Required</sup> <a name=\"sseEnabled\" id=\"@aws-amplify/graphql-api-construct.SSESpecification.property.sseEnabled\"></a>\n\n```typescript\npublic readonly sseEnabled: boolean;\n```\n\n- *Type:* boolean\n\nIndicates whether server-side encryption is done using an AWS managed key or an AWS owned key.\n\nIf enabled (true), server-side encryption type is set to `KMS` and an AWS managed key is used ( AWS KMS charges apply).\nIf disabled (false) or not specified, server-side encryption is set to AWS owned key.\n\n---\n\n##### `kmsMasterKeyId`<sup>Optional</sup> <a name=\"kmsMasterKeyId\" id=\"@aws-amplify/graphql-api-construct.SSESpecification.property.kmsMasterKeyId\"></a>\n\n```typescript\npublic readonly kmsMasterKeyId: string;\n```\n\n- *Type:* string\n\nThe AWS KMS key that should be used for the AWS KMS encryption.\n\nTo specify a key, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide\nthis parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb` .\n\n---\n\n##### `sseType`<sup>Optional</sup> <a name=\"sseType\" id=\"@aws-amplify/graphql-api-construct.SSESpecification.property.sseType\"></a>\n\n```typescript\npublic readonly sseType: SSEType;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.SSEType\">SSEType</a>\n\nServer-side encryption type.\n\nThe only supported value is:\n`KMS` Server-side encryption that uses AWS Key Management Service.\n The key is stored in your account and is managed by AWS KMS ( AWS KMS charges apply).\n\n---\n\n### StreamSpecification <a name=\"StreamSpecification\" id=\"@aws-amplify/graphql-api-construct.StreamSpecification\"></a>\n\nRepresents the DynamoDB Streams configuration for a table in DynamoDB.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.StreamSpecification.Initializer\"></a>\n\n```typescript\nimport { StreamSpecification } from '@aws-amplify/graphql-api-construct'\n\nconst streamSpecification: StreamSpecification = { ... }\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.StreamSpecification.property.streamViewType\">streamViewType</a></code> | <code>aws-cdk-lib.aws_dynamodb.StreamViewType</code> | When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table. |\n\n---\n\n##### `streamViewType`<sup>Required</sup> <a name=\"streamViewType\" id=\"@aws-amplify/graphql-api-construct.StreamSpecification.property.streamViewType\"></a>\n\n```typescript\npublic readonly streamViewType: StreamViewType;\n```\n\n- *Type:* aws-cdk-lib.aws_dynamodb.StreamViewType\n\nWhen an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table.\n\nValid values for `StreamViewType` are:\n- `KEYS_ONLY` - Only the key attributes of the modified item are written to the stream.\n- `NEW_IMAGE` - The entire item, as it appears after it was modified, is written to the stream.\n- `OLD_IMAGE` - The entire item, as it appeared before it was modified, is written to the stream.\n- `NEW_AND_OLD_IMAGES` - Both the new and the old item images of the item are written to the stream.\n\n---\n\n### SubnetAvailabilityZone <a name=\"SubnetAvailabilityZone\" id=\"@aws-amplify/graphql-api-construct.SubnetAvailabilityZone\"></a>\n\nSubnet configuration for VPC endpoints used by a Lambda resolver for a SQL-based data source.\n\nAlthough it is possible to create multiple\nsubnets in a single availability zone, VPC service endpoints may only be deployed to a single subnet in a given availability zone. This\nstructure ensures that the Lambda function and VPC service endpoints are mutually consistent.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.SubnetAvailabilityZone.Initializer\"></a>\n\n```typescript\nimport { SubnetAvailabilityZone } from '@aws-amplify/graphql-api-construct'\n\nconst subnetAvailabilityZone: SubnetAvailabilityZone = { ... }\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.SubnetAvailabilityZone.property.availabilityZone\">availabilityZone</a></code> | <code>string</code> | The availability zone of the subnet. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SubnetAvailabilityZone.property.subnetId\">subnetId</a></code> | <code>string</code> | The subnet ID to install the Lambda data source in. |\n\n---\n\n##### `availabilityZone`<sup>Required</sup> <a name=\"availabilityZone\" id=\"@aws-amplify/graphql-api-construct.SubnetAvailabilityZone.property.availabilityZone\"></a>\n\n```typescript\npublic readonly availabilityZone: string;\n```\n\n- *Type:* string\n\nThe availability zone of the subnet.\n\n---\n\n##### `subnetId`<sup>Required</sup> <a name=\"subnetId\" id=\"@aws-amplify/graphql-api-construct.SubnetAvailabilityZone.property.subnetId\"></a>\n\n```typescript\npublic readonly subnetId: string;\n```\n\n- *Type:* string\n\nThe subnet ID to install the Lambda data source in.\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### TimeToLiveSpecification <a name=\"TimeToLiveSpecification\" id=\"@aws-amplify/graphql-api-construct.TimeToLiveSpecification\"></a>\n\nShape for TTL config.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.TimeToLiveSpecification.Initializer\"></a>\n\n```typescript\nimport { TimeToLiveSpecification } from '@aws-amplify/graphql-api-construct'\n\nconst timeToLiveSpecification: TimeToLiveSpecification = { ... }\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.TimeToLiveSpecification.property.enabled\">enabled</a></code> | <code>boolean</code> | Boolean determining if the ttl is enabled or not. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.TimeToLiveSpecification.property.attributeName\">attributeName</a></code> | <code>string</code> | Attribute name to apply to the ttl spec. |\n\n---\n\n##### `enabled`<sup>Required</sup> <a name=\"enabled\" id=\"@aws-amplify/graphql-api-construct.TimeToLiveSpecification.property.enabled\"></a>\n\n```typescript\npublic readonly enabled: boolean;\n```\n\n- *Type:* boolean\n\nBoolean determining if the ttl is enabled or not.\n\n---\n\n##### `attributeName`<sup>Optional</sup> <a name=\"attributeName\" id=\"@aws-amplify/graphql-api-construct.TimeToLiveSpecification.property.attributeName\"></a>\n\n```typescript\npublic readonly attributeName: string;\n```\n\n- *Type:* string\n\nAttribute name to apply to the ttl spec.\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.allowDestructiveGraphqlSchemaUpdates\">allowDestructiveGraphqlSchemaUpdates</a></code> | <code>boolean</code> | The following schema updates require replacement of the underlying DynamoDB table:. |\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> | *No description.* |\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##### `allowDestructiveGraphqlSchemaUpdates`<sup>Required</sup> <a name=\"allowDestructiveGraphqlSchemaUpdates\" id=\"@aws-amplify/graphql-api-construct.TranslationBehavior.property.allowDestructiveGraphqlSchemaUpdates\"></a>\n\n```typescript\npublic readonly allowDestructiveGraphqlSchemaUpdates: boolean;\n```\n\n- *Type:* boolean\n- *Default:* false\n\nThe following schema updates require replacement of the underlying DynamoDB table:.\n\nRemoving or renaming a model\n - Modifying the primary key of a model\n - Modifying a Local Secondary Index of a model (only applies to projects with secondaryKeyAsGSI turned off)\n\nALL DATA WILL BE LOST when the table replacement happens. When enabled, destructive updates are allowed.\nThis will only affect DynamoDB tables with provision strategy \"AMPLIFY_TABLE\".\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\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### VpcConfig <a name=\"VpcConfig\" id=\"@aws-amplify/graphql-api-construct.VpcConfig\"></a>\n\nConfiguration of the VPC in which to install a Lambda to resolve queries against a SQL-based data source.\n\nThe SQL Lambda will be deployed\ninto the specified VPC, subnets, and security groups. The specified subnets and security groups must be in the same VPC. The VPC must\nhave at least one subnet. The construct will also create VPC service endpoints in the specified subnets, as well as inbound security\nrules, to allow traffic on port 443 within each security group. This allows the Lambda to read database connection information from\nSecure Systems Manager.\n\n#### Initializer <a name=\"Initializer\" id=\"@aws-amplify/graphql-api-construct.VpcConfig.Initializer\"></a>\n\n```typescript\nimport { VpcConfig } from '@aws-amplify/graphql-api-construct'\n\nconst vpcConfig: VpcConfig = { ... }\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.VpcConfig.property.securityGroupIds\">securityGroupIds</a></code> | <code>string[]</code> | The security groups to install the Lambda data source in. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.VpcConfig.property.subnetAvailabilityZoneConfig\">subnetAvailabilityZoneConfig</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.SubnetAvailabilityZone\">SubnetAvailabilityZone</a>[]</code> | The subnets to install the Lambda data source in, one per availability zone. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.VpcConfig.property.vpcId\">vpcId</a></code> | <code>string</code> | The VPC to install the Lambda data source in. |\n\n---\n\n##### `securityGroupIds`<sup>Required</sup> <a name=\"securityGroupIds\" id=\"@aws-amplify/graphql-api-construct.VpcConfig.property.securityGroupIds\"></a>\n\n```typescript\npublic readonly securityGroupIds: string[];\n```\n\n- *Type:* string[]\n\nThe security groups to install the Lambda data source in.\n\n---\n\n##### `subnetAvailabilityZoneConfig`<sup>Required</sup> <a name=\"subnetAvailabilityZoneConfig\" id=\"@aws-amplify/graphql-api-construct.VpcConfig.property.subnetAvailabilityZoneConfig\"></a>\n\n```typescript\npublic readonly subnetAvailabilityZoneConfig: SubnetAvailabilityZone[];\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.SubnetAvailabilityZone\">SubnetAvailabilityZone</a>[]\n\nThe subnets to install the Lambda data source in, one per availability zone.\n\n---\n\n##### `vpcId`<sup>Required</sup> <a name=\"vpcId\" id=\"@aws-amplify/graphql-api-construct.VpcConfig.property.vpcId\"></a>\n\n```typescript\npublic readonly vpcId: string;\n```\n\n- *Type:* string\n\nThe VPC to install the Lambda data source in.\n\n---\n\n## Classes <a name=\"Classes\" id=\"Classes\"></a>\n\n### AmplifyDynamoDbTableWrapper <a name=\"AmplifyDynamoDbTableWrapper\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper\"></a>\n\nWrapper class around Custom::AmplifyDynamoDBTable custom resource, to simplify the override experience a bit.\n\nThis is NOT a construct, just an easier way to access\nthe generated construct.\nThis is a wrapper intended to mimic the `aws_cdk_lib.aws_dynamodb.Table` functionality more-or-less.\nNotable differences is the addition of TKTK properties, to account for the fact that they're constructor props\nin the CDK construct, as well as the removal of all from*, grant*, and metric* methods implemented by Table.\n\n#### Initializers <a name=\"Initializers\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.Initializer\"></a>\n\n```typescript\nimport { AmplifyDynamoDbTableWrapper } from '@aws-amplify/graphql-api-construct'\n\nnew AmplifyDynamoDbTableWrapper(resource: CfnResource)\n```\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.Initializer.parameter.resource\">resource</a></code> | <code>aws-cdk-lib.CfnResource</code> | the Cfn resource. |\n\n---\n\n##### `resource`<sup>Required</sup> <a name=\"resource\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.Initializer.parameter.resource\"></a>\n\n- *Type:* aws-cdk-lib.CfnResource\n\nthe Cfn resource.\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.AmplifyDynamoDbTableWrapper.setGlobalSecondaryIndexProvisionedThroughput\">setGlobalSecondaryIndexProvisionedThroughput</a></code> | Set the provisionedThroughtput for a specified GSI by name. |\n\n---\n\n##### `setGlobalSecondaryIndexProvisionedThroughput` <a name=\"setGlobalSecondaryIndexProvisionedThroughput\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.setGlobalSecondaryIndexProvisionedThroughput\"></a>\n\n```typescript\npublic setGlobalSecondaryIndexProvisionedThroughput(indexName: string, provisionedThroughput: ProvisionedThroughput): void\n```\n\nSet the provisionedThroughtput for a specified GSI by name.\n\n###### `indexName`<sup>Required</sup> <a name=\"indexName\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.setGlobalSecondaryIndexProvisionedThroughput.parameter.indexName\"></a>\n\n- *Type:* string\n\nthe index to specify a provisionedThroughput config for.\n\n---\n\n###### `provisionedThroughput`<sup>Required</sup> <a name=\"provisionedThroughput\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.setGlobalSecondaryIndexProvisionedThroughput.parameter.provisionedThroughput\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.ProvisionedThroughput\">ProvisionedThroughput</a>\n\nthe config to set.\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.AmplifyDynamoDbTableWrapper.isAmplifyDynamoDbTableResource\">isAmplifyDynamoDbTableResource</a></code> | Return true and perform type narrowing if a given input appears to be capable of. |\n\n---\n\n##### `isAmplifyDynamoDbTableResource` <a name=\"isAmplifyDynamoDbTableResource\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.isAmplifyDynamoDbTableResource\"></a>\n\n```typescript\nimport { AmplifyDynamoDbTableWrapper } from '@aws-amplify/graphql-api-construct'\n\nAmplifyDynamoDbTableWrapper.isAmplifyDynamoDbTableResource(x: any)\n```\n\nReturn true and perform type narrowing if a given input appears to be capable of.\n\n###### `x`<sup>Required</sup> <a name=\"x\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.isAmplifyDynamoDbTableResource.parameter.x\"></a>\n\n- *Type:* any\n\nthe object to check.\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.AmplifyDynamoDbTableWrapper.property.billingMode\">billingMode</a></code> | <code>aws-cdk-lib.aws_dynamodb.BillingMode</code> | Specify how you are charged for read and write throughput and how you manage capacity. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.deletionProtectionEnabled\">deletionProtectionEnabled</a></code> | <code>boolean</code> | Set table deletion protection. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.pointInTimeRecoveryEnabled\">pointInTimeRecoveryEnabled</a></code> | <code>boolean</code> | Whether point-in-time recovery is enabled. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.provisionedThroughput\">provisionedThroughput</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.ProvisionedThroughput\">ProvisionedThroughput</a></code> | Update the provisioned throughput for the base table. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.sseSpecification\">sseSpecification</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.SSESpecification\">SSESpecification</a></code> | Set the ddb server-side encryption specification on the table. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.streamSpecification\">streamSpecification</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.StreamSpecification\">StreamSpecification</a></code> | Set the ddb stream specification on the table. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.timeToLiveAttribute\">timeToLiveAttribute</a></code> | <code><a href=\"#@aws-amplify/graphql-api-construct.TimeToLiveSpecification\">TimeToLiveSpecification</a></code> | The name of TTL attribute. |\n\n---\n\n##### `billingMode`<sup>Required</sup> <a name=\"billingMode\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.billingMode\"></a>\n\n```typescript\npublic readonly billingMode: BillingMode;\n```\n\n- *Type:* aws-cdk-lib.aws_dynamodb.BillingMode\n\nSpecify how you are charged for read and write throughput and how you manage capacity.\n\n---\n\n##### `deletionProtectionEnabled`<sup>Required</sup> <a name=\"deletionProtectionEnabled\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.deletionProtectionEnabled\"></a>\n\n```typescript\npublic readonly deletionProtectionEnabled: boolean;\n```\n\n- *Type:* boolean\n\nSet table deletion protection.\n\n---\n\n##### `pointInTimeRecoveryEnabled`<sup>Required</sup> <a name=\"pointInTimeRecoveryEnabled\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.pointInTimeRecoveryEnabled\"></a>\n\n```typescript\npublic readonly pointInTimeRecoveryEnabled: boolean;\n```\n\n- *Type:* boolean\n\nWhether point-in-time recovery is enabled.\n\n---\n\n##### `provisionedThroughput`<sup>Required</sup> <a name=\"provisionedThroughput\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.provisionedThroughput\"></a>\n\n```typescript\npublic readonly provisionedThroughput: ProvisionedThroughput;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.ProvisionedThroughput\">ProvisionedThroughput</a>\n\nUpdate the provisioned throughput for the base table.\n\n---\n\n##### `sseSpecification`<sup>Required</sup> <a name=\"sseSpecification\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.sseSpecification\"></a>\n\n```typescript\npublic readonly sseSpecification: SSESpecification;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.SSESpecification\">SSESpecification</a>\n\nSet the ddb server-side encryption specification on the table.\n\n---\n\n##### `streamSpecification`<sup>Required</sup> <a name=\"streamSpecification\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.streamSpecification\"></a>\n\n```typescript\npublic readonly streamSpecification: StreamSpecification;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.StreamSpecification\">StreamSpecification</a>\n\nSet the ddb stream specification on the table.\n\n---\n\n##### `timeToLiveAttribute`<sup>Required</sup> <a name=\"timeToLiveAttribute\" id=\"@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper.property.timeToLiveAttribute\"></a>\n\n```typescript\npublic readonly timeToLiveAttribute: TimeToLiveSpecification;\n```\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.TimeToLiveSpecification\">TimeToLiveSpecification</a>\n\nThe name of TTL attribute.\n\n---\n\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.combine\">combine</a></code> | Combines multiple IAmplifyGraphqlDefinitions into a single definition. |\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, binding them to a DynamoDB data source. |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFilesAndStrategy\">fromFilesAndStrategy</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##### `combine` <a name=\"combine\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.combine\"></a>\n\n```typescript\nimport { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'\n\nAmplifyGraphqlDefinition.combine(definitions: IAmplifyGraphqlDefinition[])\n```\n\nCombines multiple IAmplifyGraphqlDefinitions into a single definition.\n\n**NOTE** This API is in preview and is not recommended to use with production systems.\n\n###### `definitions`<sup>Required</sup> <a name=\"definitions\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.combine.parameter.definitions\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition\">IAmplifyGraphqlDefinition</a>[]\n\nthe definitions to combine.\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, binding them to a DynamoDB data source.\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##### `fromFilesAndStrategy` <a name=\"fromFilesAndStrategy\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFilesAndStrategy\"></a>\n\n```typescript\nimport { AmplifyGraphqlDefinition } from '@aws-amplify/graphql-api-construct'\n\nAmplifyGraphqlDefinition.fromFilesAndStrategy(filePaths: string | string[], dataSourceStrategy?: DefaultDynamoDbModelDataSourceStrategy | AmplifyDynamoDbModelDataSourceStrategy | SQLLambdaModelDataSourceStrategy)\n```\n\nConvert one or more appsync SchemaFile objects into an Amplify Graphql Schema.\n\n**NOTE** This API is in preview and is not recommended to use with production systems.\n\n###### `filePaths`<sup>Required</sup> <a name=\"filePaths\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFilesAndStrategy.parameter.filePaths\"></a>\n\n- *Type:* string | string[]\n\none or more paths to the graphql files to process.\n\n---\n\n###### `dataSourceStrategy`<sup>Optional</sup> <a name=\"dataSourceStrategy\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromFilesAndStrategy.parameter.dataSourceStrategy\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy\">DefaultDynamoDbModelDataSourceStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy\">AmplifyDynamoDbModelDataSourceStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy\">SQLLambdaModelDataSourceStrategy</a>\n\nthe provisioning definition for datasources that resolve `@model`s in this schema.\n\nThe DynamoDB from\nCloudFormation will be used by default.\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, dataSourceStrategy?: DefaultDynamoDbModelDataSourceStrategy | AmplifyDynamoDbModelDataSourceStrategy | SQLLambdaModelDataSourceStrategy)\n```\n\nProduce a schema definition from a string input.\n\n**NOTE** The 'dataSourceStrategy' configuration option is in preview and is not recommended to use with production systems.\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###### `dataSourceStrategy`<sup>Optional</sup> <a name=\"dataSourceStrategy\" id=\"@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition.fromString.parameter.dataSourceStrategy\"></a>\n\n- *Type:* <a href=\"#@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy\">DefaultDynamoDbModelDataSourceStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy\">AmplifyDynamoDbModelDataSourceStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy\">SQLLambdaModelDataSourceStrategy</a>\n\nthe provisioning definition for datasources that resolve `@model`s in this schema.\n\nThe DynamoDB from\nCloudFormation will be used by default.\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.dataSourceStrategies\">dataSourceStrategies</a></code> | <code>{[ key: string ]: <a href=\"#@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy\">DefaultDynamoDbModelDataSourceStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy\">AmplifyDynamoDbModelDataSourceStrategy</a> \\| <a href=\"#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy\">SQLLambdaModelDataSourceStrategy</a>}</code> | Retrieve the datasource strategy mapping. The default strategy is to use DynamoDB from CloudFormation. |\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| <code><a href=\"#@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.referencedLambdaFunctions\">referencedLambdaFunctions</a></code> | <code>{[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}</code> | Retrieve the references to any lambda functions used in the definition. |\n\n---\n\n##### `dataSourceStrategies`<sup>Required</sup> <a name=\"dataSourceStrategies\" id=\"@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.dataSourceStrategies\"></a>\n\n```typescript\npublic readonly dataSourceStrategies: {[ key: string ]: DefaultDynamoDbModelDataSourceStrategy | AmplifyDynamoDbModelDataSourceStrategy | SQLLambdaModelDataSourceStrategy};\n```\n\n- *Type:* {[ key: string ]: <a href=\"#@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy\">DefaultDynamoDbModelDataSourceStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy\">AmplifyDynamoDbModelDataSourceStrategy</a> | <a href=\"#@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy\">SQLLambdaModelDataSourceStrategy</a>}\n\nRetrieve the datasource strategy mapping. The default strategy is to use DynamoDB from CloudFormation.\n\n**NOTE** Explicitly specifying the 'dataSourceStrategies' configuration option is in preview and is not recommended to use with\nproduction systems. For production, use the static factory methods `fromString` or `fromFiles`.\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##### `referencedLambdaFunctions`<sup>Optional</sup> <a name=\"referencedLambdaFunctions\" id=\"@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition.property.referencedLambdaFunctions\"></a>\n\n```typescript\npublic readonly referencedLambdaFunctions: {[ key: string ]: IFunction};\n```\n\n- *Type:* {[ key: string ]: aws-cdk-lib.aws_lambda.IFunction}\n\nRetrieve the references to any lambda functions used in the definition.\n\nUseful for wiring through aws_lambda.Function constructs into the definition directly,\nand generated references to invoke them.\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## Enums <a name=\"Enums\" id=\"Enums\"></a>\n\n### SSEType <a name=\"SSEType\" id=\"@aws-amplify/graphql-api-construct.SSEType\"></a>\n\nServer Side Encryption Type Values - `KMS` - Server-side encryption that uses AWS KMS.\n\nThe key is stored in your account and is managed by KMS (AWS KMS charges apply).\n\n#### Members <a name=\"Members\" id=\"Members\"></a>\n\n| **Name** | **Description** |\n| --- | --- |\n| <code><a href=\"#@aws-amplify/graphql-api-construct.SSEType.KMS\">KMS</a></code> | *No description.* |\n\n---\n\n##### `KMS` <a name=\"KMS\" id=\"@aws-amplify/graphql-api-construct.SSEType.KMS\"></a>\n\n---\n\n"
3512
3515
  },
3513
3516
  "repository": {
3514
3517
  "directory": "packages/amplify-graphql-api-construct",
@@ -3533,7 +3536,7 @@
3533
3536
  "kind": "interface",
3534
3537
  "locationInModule": {
3535
3538
  "filename": "src/types.ts",
3536
- "line": 714
3539
+ "line": 759
3537
3540
  },
3538
3541
  "name": "AddFunctionProps",
3539
3542
  "properties": [
@@ -3546,7 +3549,7 @@
3546
3549
  "immutable": true,
3547
3550
  "locationInModule": {
3548
3551
  "filename": "src/types.ts",
3549
- "line": 718
3552
+ "line": 763
3550
3553
  },
3551
3554
  "name": "dataSource",
3552
3555
  "type": {
@@ -3562,7 +3565,7 @@
3562
3565
  "immutable": true,
3563
3566
  "locationInModule": {
3564
3567
  "filename": "src/types.ts",
3565
- "line": 723
3568
+ "line": 768
3566
3569
  },
3567
3570
  "name": "name",
3568
3571
  "type": {
@@ -3579,7 +3582,7 @@
3579
3582
  "immutable": true,
3580
3583
  "locationInModule": {
3581
3584
  "filename": "src/types.ts",
3582
- "line": 758
3585
+ "line": 803
3583
3586
  },
3584
3587
  "name": "code",
3585
3588
  "optional": true,
@@ -3597,7 +3600,7 @@
3597
3600
  "immutable": true,
3598
3601
  "locationInModule": {
3599
3602
  "filename": "src/types.ts",
3600
- "line": 730
3603
+ "line": 775
3601
3604
  },
3602
3605
  "name": "description",
3603
3606
  "optional": true,
@@ -3615,7 +3618,7 @@
3615
3618
  "immutable": true,
3616
3619
  "locationInModule": {
3617
3620
  "filename": "src/types.ts",
3618
- "line": 737
3621
+ "line": 782
3619
3622
  },
3620
3623
  "name": "requestMappingTemplate",
3621
3624
  "optional": true,
@@ -3633,7 +3636,7 @@
3633
3636
  "immutable": true,
3634
3637
  "locationInModule": {
3635
3638
  "filename": "src/types.ts",
3636
- "line": 744
3639
+ "line": 789
3637
3640
  },
3638
3641
  "name": "responseMappingTemplate",
3639
3642
  "optional": true,
@@ -3651,7 +3654,7 @@
3651
3654
  "immutable": true,
3652
3655
  "locationInModule": {
3653
3656
  "filename": "src/types.ts",
3654
- "line": 751
3657
+ "line": 796
3655
3658
  },
3656
3659
  "name": "runtime",
3657
3660
  "optional": true,
@@ -3662,6 +3665,253 @@
3662
3665
  ],
3663
3666
  "symbolId": "src/types:AddFunctionProps"
3664
3667
  },
3668
+ "@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy": {
3669
+ "assembly": "@aws-amplify/graphql-api-construct",
3670
+ "datatype": true,
3671
+ "docs": {
3672
+ "stability": "experimental",
3673
+ "summary": "Use custom resource type 'Custom::AmplifyDynamoDBTable' to provision table."
3674
+ },
3675
+ "fqn": "@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy",
3676
+ "kind": "interface",
3677
+ "locationInModule": {
3678
+ "filename": "src/types.ts",
3679
+ "line": 831
3680
+ },
3681
+ "name": "AmplifyDynamoDbModelDataSourceStrategy",
3682
+ "properties": [
3683
+ {
3684
+ "abstract": true,
3685
+ "docs": {
3686
+ "stability": "experimental"
3687
+ },
3688
+ "immutable": true,
3689
+ "locationInModule": {
3690
+ "filename": "src/types.ts",
3691
+ "line": 832
3692
+ },
3693
+ "name": "dbType",
3694
+ "type": {
3695
+ "primitive": "string"
3696
+ }
3697
+ },
3698
+ {
3699
+ "abstract": true,
3700
+ "docs": {
3701
+ "stability": "experimental"
3702
+ },
3703
+ "immutable": true,
3704
+ "locationInModule": {
3705
+ "filename": "src/types.ts",
3706
+ "line": 833
3707
+ },
3708
+ "name": "provisionStrategy",
3709
+ "type": {
3710
+ "primitive": "string"
3711
+ }
3712
+ }
3713
+ ],
3714
+ "symbolId": "src/types:AmplifyDynamoDbModelDataSourceStrategy"
3715
+ },
3716
+ "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper": {
3717
+ "assembly": "@aws-amplify/graphql-api-construct",
3718
+ "docs": {
3719
+ "remarks": "This is NOT a construct, just an easier way to access\nthe generated construct.\nThis is a wrapper intended to mimic the `aws_cdk_lib.aws_dynamodb.Table` functionality more-or-less.\nNotable differences is the addition of TKTK properties, to account for the fact that they're constructor props\nin the CDK construct, as well as the removal of all from*, grant*, and metric* methods implemented by Table.",
3720
+ "stability": "stable",
3721
+ "summary": "Wrapper class around Custom::AmplifyDynamoDBTable custom resource, to simplify the override experience a bit."
3722
+ },
3723
+ "fqn": "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper",
3724
+ "initializer": {
3725
+ "docs": {
3726
+ "stability": "stable",
3727
+ "summary": "Create the wrapper given an underlying CfnResource that is an instance of Custom::AmplifyDynamoDBTable."
3728
+ },
3729
+ "locationInModule": {
3730
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3731
+ "line": 107
3732
+ },
3733
+ "parameters": [
3734
+ {
3735
+ "docs": {
3736
+ "summary": "the Cfn resource."
3737
+ },
3738
+ "name": "resource",
3739
+ "type": {
3740
+ "fqn": "aws-cdk-lib.CfnResource"
3741
+ }
3742
+ }
3743
+ ]
3744
+ },
3745
+ "kind": "class",
3746
+ "locationInModule": {
3747
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3748
+ "line": 93
3749
+ },
3750
+ "methods": [
3751
+ {
3752
+ "docs": {
3753
+ "returns": "whether or not the resource is an underlying amplify dynamodb table resource.",
3754
+ "stability": "stable",
3755
+ "summary": "Return true and perform type narrowing if a given input appears to be capable of."
3756
+ },
3757
+ "locationInModule": {
3758
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3759
+ "line": 99
3760
+ },
3761
+ "name": "isAmplifyDynamoDbTableResource",
3762
+ "parameters": [
3763
+ {
3764
+ "docs": {
3765
+ "summary": "the object to check."
3766
+ },
3767
+ "name": "x",
3768
+ "type": {
3769
+ "primitive": "any"
3770
+ }
3771
+ }
3772
+ ],
3773
+ "returns": {
3774
+ "type": {
3775
+ "primitive": "boolean"
3776
+ }
3777
+ },
3778
+ "static": true
3779
+ },
3780
+ {
3781
+ "docs": {
3782
+ "stability": "stable",
3783
+ "summary": "Set the provisionedThroughtput for a specified GSI by name."
3784
+ },
3785
+ "locationInModule": {
3786
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3787
+ "line": 146
3788
+ },
3789
+ "name": "setGlobalSecondaryIndexProvisionedThroughput",
3790
+ "parameters": [
3791
+ {
3792
+ "docs": {
3793
+ "summary": "the index to specify a provisionedThroughput config for."
3794
+ },
3795
+ "name": "indexName",
3796
+ "type": {
3797
+ "primitive": "string"
3798
+ }
3799
+ },
3800
+ {
3801
+ "docs": {
3802
+ "summary": "the config to set."
3803
+ },
3804
+ "name": "provisionedThroughput",
3805
+ "type": {
3806
+ "fqn": "@aws-amplify/graphql-api-construct.ProvisionedThroughput"
3807
+ }
3808
+ }
3809
+ ]
3810
+ }
3811
+ ],
3812
+ "name": "AmplifyDynamoDbTableWrapper",
3813
+ "properties": [
3814
+ {
3815
+ "docs": {
3816
+ "stability": "stable",
3817
+ "summary": "Specify how you are charged for read and write throughput and how you manage capacity."
3818
+ },
3819
+ "locationInModule": {
3820
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3821
+ "line": 116
3822
+ },
3823
+ "name": "billingMode",
3824
+ "type": {
3825
+ "fqn": "aws-cdk-lib.aws_dynamodb.BillingMode"
3826
+ }
3827
+ },
3828
+ {
3829
+ "docs": {
3830
+ "stability": "stable",
3831
+ "summary": "Set table deletion protection."
3832
+ },
3833
+ "locationInModule": {
3834
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3835
+ "line": 174
3836
+ },
3837
+ "name": "deletionProtectionEnabled",
3838
+ "type": {
3839
+ "primitive": "boolean"
3840
+ }
3841
+ },
3842
+ {
3843
+ "docs": {
3844
+ "stability": "stable",
3845
+ "summary": "Whether point-in-time recovery is enabled."
3846
+ },
3847
+ "locationInModule": {
3848
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3849
+ "line": 130
3850
+ },
3851
+ "name": "pointInTimeRecoveryEnabled",
3852
+ "type": {
3853
+ "primitive": "boolean"
3854
+ }
3855
+ },
3856
+ {
3857
+ "docs": {
3858
+ "stability": "stable",
3859
+ "summary": "Update the provisioned throughput for the base table."
3860
+ },
3861
+ "locationInModule": {
3862
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3863
+ "line": 137
3864
+ },
3865
+ "name": "provisionedThroughput",
3866
+ "type": {
3867
+ "fqn": "@aws-amplify/graphql-api-construct.ProvisionedThroughput"
3868
+ }
3869
+ },
3870
+ {
3871
+ "docs": {
3872
+ "stability": "stable",
3873
+ "summary": "Set the ddb server-side encryption specification on the table."
3874
+ },
3875
+ "locationInModule": {
3876
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3877
+ "line": 167
3878
+ },
3879
+ "name": "sseSpecification",
3880
+ "type": {
3881
+ "fqn": "@aws-amplify/graphql-api-construct.SSESpecification"
3882
+ }
3883
+ },
3884
+ {
3885
+ "docs": {
3886
+ "stability": "stable",
3887
+ "summary": "Set the ddb stream specification on the table."
3888
+ },
3889
+ "locationInModule": {
3890
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3891
+ "line": 160
3892
+ },
3893
+ "name": "streamSpecification",
3894
+ "type": {
3895
+ "fqn": "@aws-amplify/graphql-api-construct.StreamSpecification"
3896
+ }
3897
+ },
3898
+ {
3899
+ "docs": {
3900
+ "stability": "stable",
3901
+ "summary": "The name of TTL attribute."
3902
+ },
3903
+ "locationInModule": {
3904
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
3905
+ "line": 123
3906
+ },
3907
+ "name": "timeToLiveAttribute",
3908
+ "type": {
3909
+ "fqn": "@aws-amplify/graphql-api-construct.TimeToLiveSpecification"
3910
+ }
3911
+ }
3912
+ ],
3913
+ "symbolId": "src/amplify-dynamodb-table-wrapper:AmplifyDynamoDbTableWrapper"
3914
+ },
3665
3915
  "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi": {
3666
3916
  "assembly": "@aws-amplify/graphql-api-construct",
3667
3917
  "base": "constructs.Construct",
@@ -3678,7 +3928,7 @@
3678
3928
  },
3679
3929
  "locationInModule": {
3680
3930
  "filename": "src/amplify-graphql-api.ts",
3681
- "line": 132
3931
+ "line": 141
3682
3932
  },
3683
3933
  "parameters": [
3684
3934
  {
@@ -3713,7 +3963,7 @@
3713
3963
  "kind": "class",
3714
3964
  "locationInModule": {
3715
3965
  "filename": "src/amplify-graphql-api.ts",
3716
- "line": 83
3966
+ "line": 87
3717
3967
  },
3718
3968
  "methods": [
3719
3969
  {
@@ -3725,7 +3975,7 @@
3725
3975
  },
3726
3976
  "locationInModule": {
3727
3977
  "filename": "src/amplify-graphql-api.ts",
3728
- "line": 257
3978
+ "line": 341
3729
3979
  },
3730
3980
  "name": "addDynamoDbDataSource",
3731
3981
  "parameters": [
@@ -3774,7 +4024,7 @@
3774
4024
  },
3775
4025
  "locationInModule": {
3776
4026
  "filename": "src/amplify-graphql-api.ts",
3777
- "line": 269
4027
+ "line": 353
3778
4028
  },
3779
4029
  "name": "addElasticsearchDataSource",
3780
4030
  "parameters": [
@@ -3821,7 +4071,7 @@
3821
4071
  },
3822
4072
  "locationInModule": {
3823
4073
  "filename": "src/amplify-graphql-api.ts",
3824
- "line": 279
4074
+ "line": 363
3825
4075
  },
3826
4076
  "name": "addEventBridgeDataSource",
3827
4077
  "parameters": [
@@ -3868,7 +4118,7 @@
3868
4118
  },
3869
4119
  "locationInModule": {
3870
4120
  "filename": "src/amplify-graphql-api.ts",
3871
- "line": 361
4121
+ "line": 445
3872
4122
  },
3873
4123
  "name": "addFunction",
3874
4124
  "parameters": [
@@ -3903,7 +4153,7 @@
3903
4153
  },
3904
4154
  "locationInModule": {
3905
4155
  "filename": "src/amplify-graphql-api.ts",
3906
- "line": 290
4156
+ "line": 374
3907
4157
  },
3908
4158
  "name": "addHttpDataSource",
3909
4159
  "parameters": [
@@ -3951,7 +4201,7 @@
3951
4201
  },
3952
4202
  "locationInModule": {
3953
4203
  "filename": "src/amplify-graphql-api.ts",
3954
- "line": 301
4204
+ "line": 385
3955
4205
  },
3956
4206
  "name": "addLambdaDataSource",
3957
4207
  "parameters": [
@@ -3999,7 +4249,7 @@
3999
4249
  },
4000
4250
  "locationInModule": {
4001
4251
  "filename": "src/amplify-graphql-api.ts",
4002
- "line": 312
4252
+ "line": 396
4003
4253
  },
4004
4254
  "name": "addNoneDataSource",
4005
4255
  "parameters": [
@@ -4038,7 +4288,7 @@
4038
4288
  },
4039
4289
  "locationInModule": {
4040
4290
  "filename": "src/amplify-graphql-api.ts",
4041
- "line": 323
4291
+ "line": 407
4042
4292
  },
4043
4293
  "name": "addOpenSearchDataSource",
4044
4294
  "parameters": [
@@ -4086,7 +4336,7 @@
4086
4336
  },
4087
4337
  "locationInModule": {
4088
4338
  "filename": "src/amplify-graphql-api.ts",
4089
- "line": 336
4339
+ "line": 420
4090
4340
  },
4091
4341
  "name": "addRdsDataSource",
4092
4342
  "parameters": [
@@ -4153,7 +4403,7 @@
4153
4403
  },
4154
4404
  "locationInModule": {
4155
4405
  "filename": "src/amplify-graphql-api.ts",
4156
- "line": 352
4406
+ "line": 436
4157
4407
  },
4158
4408
  "name": "addResolver",
4159
4409
  "parameters": [
@@ -4194,7 +4444,7 @@
4194
4444
  "immutable": true,
4195
4445
  "locationInModule": {
4196
4446
  "filename": "src/amplify-graphql-api.ts",
4197
- "line": 118
4447
+ "line": 122
4198
4448
  },
4199
4449
  "name": "apiId",
4200
4450
  "type": {
@@ -4209,7 +4459,7 @@
4209
4459
  "immutable": true,
4210
4460
  "locationInModule": {
4211
4461
  "filename": "src/amplify-graphql-api.ts",
4212
- "line": 98
4462
+ "line": 102
4213
4463
  },
4214
4464
  "name": "generatedFunctionSlots",
4215
4465
  "type": {
@@ -4242,7 +4492,7 @@
4242
4492
  "immutable": true,
4243
4493
  "locationInModule": {
4244
4494
  "filename": "src/amplify-graphql-api.ts",
4245
- "line": 103
4495
+ "line": 107
4246
4496
  },
4247
4497
  "name": "graphqlUrl",
4248
4498
  "type": {
@@ -4258,7 +4508,7 @@
4258
4508
  "immutable": true,
4259
4509
  "locationInModule": {
4260
4510
  "filename": "src/amplify-graphql-api.ts",
4261
- "line": 108
4511
+ "line": 112
4262
4512
  },
4263
4513
  "name": "realtimeUrl",
4264
4514
  "type": {
@@ -4273,7 +4523,7 @@
4273
4523
  "immutable": true,
4274
4524
  "locationInModule": {
4275
4525
  "filename": "src/amplify-graphql-api.ts",
4276
- "line": 87
4526
+ "line": 91
4277
4527
  },
4278
4528
  "name": "resources",
4279
4529
  "type": {
@@ -4289,7 +4539,7 @@
4289
4539
  "immutable": true,
4290
4540
  "locationInModule": {
4291
4541
  "filename": "src/amplify-graphql-api.ts",
4292
- "line": 113
4542
+ "line": 117
4293
4543
  },
4294
4544
  "name": "apiKey",
4295
4545
  "optional": true,
@@ -4312,7 +4562,7 @@
4312
4562
  "kind": "interface",
4313
4563
  "locationInModule": {
4314
4564
  "filename": "src/types.ts",
4315
- "line": 622
4565
+ "line": 662
4316
4566
  },
4317
4567
  "name": "AmplifyGraphqlApiCfnResources",
4318
4568
  "properties": [
@@ -4325,7 +4575,7 @@
4325
4575
  "immutable": true,
4326
4576
  "locationInModule": {
4327
4577
  "filename": "src/types.ts",
4328
- "line": 671
4578
+ "line": 711
4329
4579
  },
4330
4580
  "name": "additionalCfnResources",
4331
4581
  "type": {
@@ -4346,7 +4596,7 @@
4346
4596
  "immutable": true,
4347
4597
  "locationInModule": {
4348
4598
  "filename": "src/types.ts",
4349
- "line": 651
4599
+ "line": 691
4350
4600
  },
4351
4601
  "name": "cfnDataSources",
4352
4602
  "type": {
@@ -4367,7 +4617,7 @@
4367
4617
  "immutable": true,
4368
4618
  "locationInModule": {
4369
4619
  "filename": "src/types.ts",
4370
- "line": 646
4620
+ "line": 686
4371
4621
  },
4372
4622
  "name": "cfnFunctionConfigurations",
4373
4623
  "type": {
@@ -4388,7 +4638,7 @@
4388
4638
  "immutable": true,
4389
4639
  "locationInModule": {
4390
4640
  "filename": "src/types.ts",
4391
- "line": 666
4641
+ "line": 706
4392
4642
  },
4393
4643
  "name": "cfnFunctions",
4394
4644
  "type": {
@@ -4409,7 +4659,7 @@
4409
4659
  "immutable": true,
4410
4660
  "locationInModule": {
4411
4661
  "filename": "src/types.ts",
4412
- "line": 626
4662
+ "line": 666
4413
4663
  },
4414
4664
  "name": "cfnGraphqlApi",
4415
4665
  "type": {
@@ -4425,7 +4675,7 @@
4425
4675
  "immutable": true,
4426
4676
  "locationInModule": {
4427
4677
  "filename": "src/types.ts",
4428
- "line": 631
4678
+ "line": 671
4429
4679
  },
4430
4680
  "name": "cfnGraphqlSchema",
4431
4681
  "type": {
@@ -4441,7 +4691,7 @@
4441
4691
  "immutable": true,
4442
4692
  "locationInModule": {
4443
4693
  "filename": "src/types.ts",
4444
- "line": 641
4694
+ "line": 681
4445
4695
  },
4446
4696
  "name": "cfnResolvers",
4447
4697
  "type": {
@@ -4462,7 +4712,7 @@
4462
4712
  "immutable": true,
4463
4713
  "locationInModule": {
4464
4714
  "filename": "src/types.ts",
4465
- "line": 661
4715
+ "line": 701
4466
4716
  },
4467
4717
  "name": "cfnRoles",
4468
4718
  "type": {
@@ -4483,7 +4733,7 @@
4483
4733
  "immutable": true,
4484
4734
  "locationInModule": {
4485
4735
  "filename": "src/types.ts",
4486
- "line": 656
4736
+ "line": 696
4487
4737
  },
4488
4738
  "name": "cfnTables",
4489
4739
  "type": {
@@ -4504,7 +4754,7 @@
4504
4754
  "immutable": true,
4505
4755
  "locationInModule": {
4506
4756
  "filename": "src/types.ts",
4507
- "line": 636
4757
+ "line": 676
4508
4758
  },
4509
4759
  "name": "cfnApiKey",
4510
4760
  "optional": true,
@@ -4527,7 +4777,7 @@
4527
4777
  "kind": "interface",
4528
4778
  "locationInModule": {
4529
4779
  "filename": "src/types.ts",
4530
- "line": 546
4780
+ "line": 586
4531
4781
  },
4532
4782
  "name": "AmplifyGraphqlApiProps",
4533
4783
  "properties": [
@@ -4541,7 +4791,7 @@
4541
4791
  "immutable": true,
4542
4792
  "locationInModule": {
4543
4793
  "filename": "src/types.ts",
4544
- "line": 563
4794
+ "line": 603
4545
4795
  },
4546
4796
  "name": "authorizationModes",
4547
4797
  "type": {
@@ -4558,7 +4808,7 @@
4558
4808
  "immutable": true,
4559
4809
  "locationInModule": {
4560
4810
  "filename": "src/types.ts",
4561
- "line": 551
4811
+ "line": 591
4562
4812
  },
4563
4813
  "name": "definition",
4564
4814
  "type": {
@@ -4575,7 +4825,7 @@
4575
4825
  "immutable": true,
4576
4826
  "locationInModule": {
4577
4827
  "filename": "src/types.ts",
4578
- "line": 557
4828
+ "line": 597
4579
4829
  },
4580
4830
  "name": "apiName",
4581
4831
  "optional": true,
@@ -4593,7 +4843,7 @@
4593
4843
  "immutable": true,
4594
4844
  "locationInModule": {
4595
4845
  "filename": "src/types.ts",
4596
- "line": 577
4846
+ "line": 617
4597
4847
  },
4598
4848
  "name": "conflictResolution",
4599
4849
  "optional": true,
@@ -4613,7 +4863,7 @@
4613
4863
  "immutable": true,
4614
4864
  "locationInModule": {
4615
4865
  "filename": "src/types.ts",
4616
- "line": 571
4866
+ "line": 611
4617
4867
  },
4618
4868
  "name": "functionNameMap",
4619
4869
  "optional": true,
@@ -4636,7 +4886,7 @@
4636
4886
  "immutable": true,
4637
4887
  "locationInModule": {
4638
4888
  "filename": "src/types.ts",
4639
- "line": 592
4889
+ "line": 632
4640
4890
  },
4641
4891
  "name": "functionSlots",
4642
4892
  "optional": true,
@@ -4671,7 +4921,7 @@
4671
4921
  "immutable": true,
4672
4922
  "locationInModule": {
4673
4923
  "filename": "src/types.ts",
4674
- "line": 615
4924
+ "line": 655
4675
4925
  },
4676
4926
  "name": "outputStorageStrategy",
4677
4927
  "optional": true,
@@ -4688,7 +4938,7 @@
4688
4938
  "immutable": true,
4689
4939
  "locationInModule": {
4690
4940
  "filename": "src/types.ts",
4691
- "line": 604
4941
+ "line": 644
4692
4942
  },
4693
4943
  "name": "predictionsBucket",
4694
4944
  "optional": true,
@@ -4706,7 +4956,7 @@
4706
4956
  "immutable": true,
4707
4957
  "locationInModule": {
4708
4958
  "filename": "src/types.ts",
4709
- "line": 586
4959
+ "line": 626
4710
4960
  },
4711
4961
  "name": "stackMappings",
4712
4962
  "optional": true,
@@ -4732,7 +4982,7 @@
4732
4982
  "immutable": true,
4733
4983
  "locationInModule": {
4734
4984
  "filename": "src/types.ts",
4735
- "line": 599
4985
+ "line": 639
4736
4986
  },
4737
4987
  "name": "transformerPlugins",
4738
4988
  "optional": true,
@@ -4754,7 +5004,7 @@
4754
5004
  "immutable": true,
4755
5005
  "locationInModule": {
4756
5006
  "filename": "src/types.ts",
4757
- "line": 610
5007
+ "line": 650
4758
5008
  },
4759
5009
  "name": "translationBehavior",
4760
5010
  "optional": true,
@@ -4777,10 +5027,31 @@
4777
5027
  "kind": "interface",
4778
5028
  "locationInModule": {
4779
5029
  "filename": "src/types.ts",
4780
- "line": 678
5030
+ "line": 718
4781
5031
  },
4782
5032
  "name": "AmplifyGraphqlApiResources",
4783
5033
  "properties": [
5034
+ {
5035
+ "abstract": true,
5036
+ "docs": {
5037
+ "stability": "stable",
5038
+ "summary": "The Generated Amplify DynamoDb Table wrapped if produced, keyed by name."
5039
+ },
5040
+ "immutable": true,
5041
+ "locationInModule": {
5042
+ "filename": "src/types.ts",
5043
+ "line": 732
5044
+ },
5045
+ "name": "amplifyDynamoDbTables",
5046
+ "type": {
5047
+ "collection": {
5048
+ "elementtype": {
5049
+ "fqn": "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper"
5050
+ },
5051
+ "kind": "map"
5052
+ }
5053
+ }
5054
+ },
4784
5055
  {
4785
5056
  "abstract": true,
4786
5057
  "docs": {
@@ -4790,7 +5061,7 @@
4790
5061
  "immutable": true,
4791
5062
  "locationInModule": {
4792
5063
  "filename": "src/types.ts",
4793
- "line": 702
5064
+ "line": 747
4794
5065
  },
4795
5066
  "name": "cfnResources",
4796
5067
  "type": {
@@ -4806,7 +5077,7 @@
4806
5077
  "immutable": true,
4807
5078
  "locationInModule": {
4808
5079
  "filename": "src/types.ts",
4809
- "line": 697
5080
+ "line": 742
4810
5081
  },
4811
5082
  "name": "functions",
4812
5083
  "type": {
@@ -4827,7 +5098,7 @@
4827
5098
  "immutable": true,
4828
5099
  "locationInModule": {
4829
5100
  "filename": "src/types.ts",
4830
- "line": 682
5101
+ "line": 722
4831
5102
  },
4832
5103
  "name": "graphqlApi",
4833
5104
  "type": {
@@ -4843,7 +5114,7 @@
4843
5114
  "immutable": true,
4844
5115
  "locationInModule": {
4845
5116
  "filename": "src/types.ts",
4846
- "line": 707
5117
+ "line": 752
4847
5118
  },
4848
5119
  "name": "nestedStacks",
4849
5120
  "type": {
@@ -4864,7 +5135,7 @@
4864
5135
  "immutable": true,
4865
5136
  "locationInModule": {
4866
5137
  "filename": "src/types.ts",
4867
- "line": 692
5138
+ "line": 737
4868
5139
  },
4869
5140
  "name": "roles",
4870
5141
  "type": {
@@ -4885,7 +5156,7 @@
4885
5156
  "immutable": true,
4886
5157
  "locationInModule": {
4887
5158
  "filename": "src/types.ts",
4888
- "line": 687
5159
+ "line": 727
4889
5160
  },
4890
5161
  "name": "tables",
4891
5162
  "type": {
@@ -4915,30 +5186,34 @@
4915
5186
  "kind": "class",
4916
5187
  "locationInModule": {
4917
5188
  "filename": "src/amplify-graphql-definition.ts",
4918
- "line": 8
5189
+ "line": 14
4919
5190
  },
4920
5191
  "methods": [
4921
5192
  {
4922
5193
  "docs": {
4923
- "returns": "a fully formed amplify graphql definition",
4924
- "stability": "stable",
4925
- "summary": "Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema."
5194
+ "remarks": "**NOTE** This API is in preview and is not recommended to use with production systems.",
5195
+ "stability": "experimental",
5196
+ "summary": "Combines multiple IAmplifyGraphqlDefinitions into a single definition."
4926
5197
  },
4927
5198
  "locationInModule": {
4928
5199
  "filename": "src/amplify-graphql-definition.ts",
4929
- "line": 26
5200
+ "line": 91
4930
5201
  },
4931
- "name": "fromFiles",
5202
+ "name": "combine",
4932
5203
  "parameters": [
4933
5204
  {
4934
5205
  "docs": {
4935
- "summary": "one or more paths to the graphql files to process."
5206
+ "summary": "the definitions to combine."
4936
5207
  },
4937
- "name": "filePaths",
5208
+ "name": "definitions",
4938
5209
  "type": {
4939
- "primitive": "string"
4940
- },
4941
- "variadic": true
5210
+ "collection": {
5211
+ "elementtype": {
5212
+ "fqn": "@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition"
5213
+ },
5214
+ "kind": "array"
5215
+ }
5216
+ }
4942
5217
  }
4943
5218
  ],
4944
5219
  "returns": {
@@ -4946,29 +5221,29 @@
4946
5221
  "fqn": "@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition"
4947
5222
  }
4948
5223
  },
4949
- "static": true,
4950
- "variadic": true
5224
+ "static": true
4951
5225
  },
4952
5226
  {
4953
5227
  "docs": {
4954
- "returns": "a fully formed amplify graphql definition",
5228
+ "returns": "a fully formed amplify graphql definition, whose models will be resolved by DynamoDB tables created during deployment.",
4955
5229
  "stability": "stable",
4956
- "summary": "Produce a schema definition from a string input."
5230
+ "summary": "Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema, binding them to a DynamoDB data source."
4957
5231
  },
4958
5232
  "locationInModule": {
4959
5233
  "filename": "src/amplify-graphql-definition.ts",
4960
- "line": 14
5234
+ "line": 43
4961
5235
  },
4962
- "name": "fromString",
5236
+ "name": "fromFiles",
4963
5237
  "parameters": [
4964
5238
  {
4965
5239
  "docs": {
4966
- "summary": "the graphql input as a string."
5240
+ "summary": "one or more paths to the graphql files to process."
4967
5241
  },
4968
- "name": "schema",
5242
+ "name": "filePaths",
4969
5243
  "type": {
4970
5244
  "primitive": "string"
4971
- }
5245
+ },
5246
+ "variadic": true
4972
5247
  }
4973
5248
  ],
4974
5249
  "returns": {
@@ -4976,38 +5251,159 @@
4976
5251
  "fqn": "@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition"
4977
5252
  }
4978
5253
  },
4979
- "static": true
4980
- }
4981
- ],
4982
- "name": "AmplifyGraphqlDefinition",
4983
- "symbolId": "src/amplify-graphql-definition:AmplifyGraphqlDefinition"
4984
- },
4985
- "@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig": {
4986
- "assembly": "@aws-amplify/graphql-api-construct",
4987
- "datatype": true,
4988
- "docs": {
4989
- "stability": "stable",
4990
- "summary": "Configuration for Api Keys on the Graphql Api."
4991
- },
4992
- "fqn": "@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig",
4993
- "kind": "interface",
4994
- "locationInModule": {
4995
- "filename": "src/types.ts",
4996
- "line": 96
4997
- },
4998
- "name": "ApiKeyAuthorizationConfig",
4999
- "properties": [
5254
+ "static": true,
5255
+ "variadic": true
5256
+ },
5000
5257
  {
5001
- "abstract": true,
5002
5258
  "docs": {
5003
- "stability": "stable",
5004
- "summary": "A duration representing the time from Cloudformation deploy until expiry."
5259
+ "remarks": "**NOTE** This API is in preview and is not recommended to use with production systems.",
5260
+ "returns": "a fully formed amplify graphql definition",
5261
+ "stability": "experimental",
5262
+ "summary": "Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema."
5005
5263
  },
5006
- "immutable": true,
5007
5264
  "locationInModule": {
5008
- "filename": "src/types.ts",
5009
- "line": 105
5010
- },
5265
+ "filename": "src/amplify-graphql-definition.ts",
5266
+ "line": 67
5267
+ },
5268
+ "name": "fromFilesAndStrategy",
5269
+ "parameters": [
5270
+ {
5271
+ "docs": {
5272
+ "summary": "one or more paths to the graphql files to process."
5273
+ },
5274
+ "name": "filePaths",
5275
+ "type": {
5276
+ "union": {
5277
+ "types": [
5278
+ {
5279
+ "primitive": "string"
5280
+ },
5281
+ {
5282
+ "collection": {
5283
+ "elementtype": {
5284
+ "primitive": "string"
5285
+ },
5286
+ "kind": "array"
5287
+ }
5288
+ }
5289
+ ]
5290
+ }
5291
+ }
5292
+ },
5293
+ {
5294
+ "docs": {
5295
+ "remarks": "The DynamoDB from\nCloudFormation will be used by default.",
5296
+ "summary": "the provisioning definition for datasources that resolve `@model`s in this schema."
5297
+ },
5298
+ "name": "dataSourceStrategy",
5299
+ "optional": true,
5300
+ "type": {
5301
+ "union": {
5302
+ "types": [
5303
+ {
5304
+ "fqn": "@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy"
5305
+ },
5306
+ {
5307
+ "fqn": "@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy"
5308
+ },
5309
+ {
5310
+ "fqn": "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy"
5311
+ }
5312
+ ]
5313
+ }
5314
+ }
5315
+ }
5316
+ ],
5317
+ "returns": {
5318
+ "type": {
5319
+ "fqn": "@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition"
5320
+ }
5321
+ },
5322
+ "static": true
5323
+ },
5324
+ {
5325
+ "docs": {
5326
+ "remarks": "**NOTE** The 'dataSourceStrategy' configuration option is in preview and is not recommended to use with production systems.",
5327
+ "returns": "a fully formed amplify graphql definition",
5328
+ "stability": "experimental",
5329
+ "summary": "Produce a schema definition from a string input."
5330
+ },
5331
+ "locationInModule": {
5332
+ "filename": "src/amplify-graphql-definition.ts",
5333
+ "line": 26
5334
+ },
5335
+ "name": "fromString",
5336
+ "parameters": [
5337
+ {
5338
+ "docs": {
5339
+ "summary": "the graphql input as a string."
5340
+ },
5341
+ "name": "schema",
5342
+ "type": {
5343
+ "primitive": "string"
5344
+ }
5345
+ },
5346
+ {
5347
+ "docs": {
5348
+ "remarks": "The DynamoDB from\nCloudFormation will be used by default.",
5349
+ "summary": "the provisioning definition for datasources that resolve `@model`s in this schema."
5350
+ },
5351
+ "name": "dataSourceStrategy",
5352
+ "optional": true,
5353
+ "type": {
5354
+ "union": {
5355
+ "types": [
5356
+ {
5357
+ "fqn": "@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy"
5358
+ },
5359
+ {
5360
+ "fqn": "@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy"
5361
+ },
5362
+ {
5363
+ "fqn": "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy"
5364
+ }
5365
+ ]
5366
+ }
5367
+ }
5368
+ }
5369
+ ],
5370
+ "returns": {
5371
+ "type": {
5372
+ "fqn": "@aws-amplify/graphql-api-construct.IAmplifyGraphqlDefinition"
5373
+ }
5374
+ },
5375
+ "static": true
5376
+ }
5377
+ ],
5378
+ "name": "AmplifyGraphqlDefinition",
5379
+ "symbolId": "src/amplify-graphql-definition:AmplifyGraphqlDefinition"
5380
+ },
5381
+ "@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig": {
5382
+ "assembly": "@aws-amplify/graphql-api-construct",
5383
+ "datatype": true,
5384
+ "docs": {
5385
+ "stability": "stable",
5386
+ "summary": "Configuration for Api Keys on the Graphql Api."
5387
+ },
5388
+ "fqn": "@aws-amplify/graphql-api-construct.ApiKeyAuthorizationConfig",
5389
+ "kind": "interface",
5390
+ "locationInModule": {
5391
+ "filename": "src/types.ts",
5392
+ "line": 97
5393
+ },
5394
+ "name": "ApiKeyAuthorizationConfig",
5395
+ "properties": [
5396
+ {
5397
+ "abstract": true,
5398
+ "docs": {
5399
+ "stability": "stable",
5400
+ "summary": "A duration representing the time from Cloudformation deploy until expiry."
5401
+ },
5402
+ "immutable": true,
5403
+ "locationInModule": {
5404
+ "filename": "src/types.ts",
5405
+ "line": 106
5406
+ },
5011
5407
  "name": "expires",
5012
5408
  "type": {
5013
5409
  "fqn": "aws-cdk-lib.Duration"
@@ -5022,7 +5418,7 @@
5022
5418
  "immutable": true,
5023
5419
  "locationInModule": {
5024
5420
  "filename": "src/types.ts",
5025
- "line": 100
5421
+ "line": 101
5026
5422
  },
5027
5423
  "name": "description",
5028
5424
  "optional": true,
@@ -5045,7 +5441,7 @@
5045
5441
  "kind": "interface",
5046
5442
  "locationInModule": {
5047
5443
  "filename": "src/types.ts",
5048
- "line": 128
5444
+ "line": 129
5049
5445
  },
5050
5446
  "name": "AuthorizationModes",
5051
5447
  "properties": [
@@ -5059,7 +5455,7 @@
5059
5455
  "immutable": true,
5060
5456
  "locationInModule": {
5061
5457
  "filename": "src/types.ts",
5062
- "line": 168
5458
+ "line": 169
5063
5459
  },
5064
5460
  "name": "adminRoles",
5065
5461
  "optional": true,
@@ -5082,7 +5478,7 @@
5082
5478
  "immutable": true,
5083
5479
  "locationInModule": {
5084
5480
  "filename": "src/types.ts",
5085
- "line": 156
5481
+ "line": 157
5086
5482
  },
5087
5483
  "name": "apiKeyConfig",
5088
5484
  "optional": true,
@@ -5099,7 +5495,7 @@
5099
5495
  "immutable": true,
5100
5496
  "locationInModule": {
5101
5497
  "filename": "src/types.ts",
5102
- "line": 132
5498
+ "line": 133
5103
5499
  },
5104
5500
  "name": "defaultAuthorizationMode",
5105
5501
  "optional": true,
@@ -5117,7 +5513,7 @@
5117
5513
  "immutable": true,
5118
5514
  "locationInModule": {
5119
5515
  "filename": "src/types.ts",
5120
- "line": 138
5516
+ "line": 139
5121
5517
  },
5122
5518
  "name": "iamConfig",
5123
5519
  "optional": true,
@@ -5135,7 +5531,7 @@
5135
5531
  "immutable": true,
5136
5532
  "locationInModule": {
5137
5533
  "filename": "src/types.ts",
5138
- "line": 162
5534
+ "line": 163
5139
5535
  },
5140
5536
  "name": "lambdaConfig",
5141
5537
  "optional": true,
@@ -5153,7 +5549,7 @@
5153
5549
  "immutable": true,
5154
5550
  "locationInModule": {
5155
5551
  "filename": "src/types.ts",
5156
- "line": 150
5552
+ "line": 151
5157
5553
  },
5158
5554
  "name": "oidcConfig",
5159
5555
  "optional": true,
@@ -5171,7 +5567,7 @@
5171
5567
  "immutable": true,
5172
5568
  "locationInModule": {
5173
5569
  "filename": "src/types.ts",
5174
- "line": 144
5570
+ "line": 145
5175
5571
  },
5176
5572
  "name": "userPoolConfig",
5177
5573
  "optional": true,
@@ -5196,7 +5592,7 @@
5196
5592
  "kind": "interface",
5197
5593
  "locationInModule": {
5198
5594
  "filename": "src/types.ts",
5199
- "line": 189
5595
+ "line": 190
5200
5596
  },
5201
5597
  "name": "AutomergeConflictResolutionStrategy",
5202
5598
  "properties": [
@@ -5210,7 +5606,7 @@
5210
5606
  "immutable": true,
5211
5607
  "locationInModule": {
5212
5608
  "filename": "src/types.ts",
5213
- "line": 194
5609
+ "line": 195
5214
5610
  },
5215
5611
  "name": "handlerType",
5216
5612
  "type": {
@@ -5231,7 +5627,7 @@
5231
5627
  "kind": "interface",
5232
5628
  "locationInModule": {
5233
5629
  "filename": "src/types.ts",
5234
- "line": 236
5630
+ "line": 237
5235
5631
  },
5236
5632
  "name": "ConflictResolution",
5237
5633
  "properties": [
@@ -5244,7 +5640,7 @@
5244
5640
  "immutable": true,
5245
5641
  "locationInModule": {
5246
5642
  "filename": "src/types.ts",
5247
- "line": 245
5643
+ "line": 246
5248
5644
  },
5249
5645
  "name": "models",
5250
5646
  "optional": true,
@@ -5279,7 +5675,7 @@
5279
5675
  "immutable": true,
5280
5676
  "locationInModule": {
5281
5677
  "filename": "src/types.ts",
5282
- "line": 240
5678
+ "line": 241
5283
5679
  },
5284
5680
  "name": "project",
5285
5681
  "optional": true,
@@ -5313,7 +5709,7 @@
5313
5709
  "kind": "interface",
5314
5710
  "locationInModule": {
5315
5711
  "filename": "src/types.ts",
5316
- "line": 179
5712
+ "line": 180
5317
5713
  },
5318
5714
  "name": "ConflictResolutionStrategyBase",
5319
5715
  "properties": [
@@ -5326,7 +5722,7 @@
5326
5722
  "immutable": true,
5327
5723
  "locationInModule": {
5328
5724
  "filename": "src/types.ts",
5329
- "line": 183
5725
+ "line": 184
5330
5726
  },
5331
5727
  "name": "detectionType",
5332
5728
  "type": {
@@ -5350,7 +5746,7 @@
5350
5746
  "kind": "interface",
5351
5747
  "locationInModule": {
5352
5748
  "filename": "src/types.ts",
5353
- "line": 211
5749
+ "line": 212
5354
5750
  },
5355
5751
  "name": "CustomConflictResolutionStrategy",
5356
5752
  "properties": [
@@ -5363,7 +5759,7 @@
5363
5759
  "immutable": true,
5364
5760
  "locationInModule": {
5365
5761
  "filename": "src/types.ts",
5366
- "line": 222
5762
+ "line": 223
5367
5763
  },
5368
5764
  "name": "conflictHandler",
5369
5765
  "type": {
@@ -5380,7 +5776,7 @@
5380
5776
  "immutable": true,
5381
5777
  "locationInModule": {
5382
5778
  "filename": "src/types.ts",
5383
- "line": 217
5779
+ "line": 218
5384
5780
  },
5385
5781
  "name": "handlerType",
5386
5782
  "type": {
@@ -5390,6 +5786,54 @@
5390
5786
  ],
5391
5787
  "symbolId": "src/types:CustomConflictResolutionStrategy"
5392
5788
  },
5789
+ "@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy": {
5790
+ "assembly": "@aws-amplify/graphql-api-construct",
5791
+ "datatype": true,
5792
+ "docs": {
5793
+ "stability": "experimental",
5794
+ "summary": "Use default CloudFormation type 'AWS::DynamoDB::Table' to provision table."
5795
+ },
5796
+ "fqn": "@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy",
5797
+ "kind": "interface",
5798
+ "locationInModule": {
5799
+ "filename": "src/types.ts",
5800
+ "line": 822
5801
+ },
5802
+ "name": "DefaultDynamoDbModelDataSourceStrategy",
5803
+ "properties": [
5804
+ {
5805
+ "abstract": true,
5806
+ "docs": {
5807
+ "stability": "experimental"
5808
+ },
5809
+ "immutable": true,
5810
+ "locationInModule": {
5811
+ "filename": "src/types.ts",
5812
+ "line": 823
5813
+ },
5814
+ "name": "dbType",
5815
+ "type": {
5816
+ "primitive": "string"
5817
+ }
5818
+ },
5819
+ {
5820
+ "abstract": true,
5821
+ "docs": {
5822
+ "stability": "experimental"
5823
+ },
5824
+ "immutable": true,
5825
+ "locationInModule": {
5826
+ "filename": "src/types.ts",
5827
+ "line": 824
5828
+ },
5829
+ "name": "provisionStrategy",
5830
+ "type": {
5831
+ "primitive": "string"
5832
+ }
5833
+ }
5834
+ ],
5835
+ "symbolId": "src/types:DefaultDynamoDbModelDataSourceStrategy"
5836
+ },
5393
5837
  "@aws-amplify/graphql-api-construct.FunctionSlotBase": {
5394
5838
  "assembly": "@aws-amplify/graphql-api-construct",
5395
5839
  "datatype": true,
@@ -5401,7 +5845,7 @@
5401
5845
  "kind": "interface",
5402
5846
  "locationInModule": {
5403
5847
  "filename": "src/types.ts",
5404
- "line": 267
5848
+ "line": 268
5405
5849
  },
5406
5850
  "name": "FunctionSlotBase",
5407
5851
  "properties": [
@@ -5414,7 +5858,7 @@
5414
5858
  "immutable": true,
5415
5859
  "locationInModule": {
5416
5860
  "filename": "src/types.ts",
5417
- "line": 271
5861
+ "line": 272
5418
5862
  },
5419
5863
  "name": "fieldName",
5420
5864
  "type": {
@@ -5430,7 +5874,7 @@
5430
5874
  "immutable": true,
5431
5875
  "locationInModule": {
5432
5876
  "filename": "src/types.ts",
5433
- "line": 282
5877
+ "line": 283
5434
5878
  },
5435
5879
  "name": "function",
5436
5880
  "type": {
@@ -5447,7 +5891,7 @@
5447
5891
  "immutable": true,
5448
5892
  "locationInModule": {
5449
5893
  "filename": "src/types.ts",
5450
- "line": 277
5894
+ "line": 278
5451
5895
  },
5452
5896
  "name": "slotIndex",
5453
5897
  "type": {
@@ -5469,7 +5913,7 @@
5469
5913
  "kind": "interface",
5470
5914
  "locationInModule": {
5471
5915
  "filename": "src/types.ts",
5472
- "line": 252
5916
+ "line": 253
5473
5917
  },
5474
5918
  "name": "FunctionSlotOverride",
5475
5919
  "properties": [
@@ -5483,7 +5927,7 @@
5483
5927
  "immutable": true,
5484
5928
  "locationInModule": {
5485
5929
  "filename": "src/types.ts",
5486
- "line": 256
5930
+ "line": 257
5487
5931
  },
5488
5932
  "name": "requestMappingTemplate",
5489
5933
  "optional": true,
@@ -5501,7 +5945,7 @@
5501
5945
  "immutable": true,
5502
5946
  "locationInModule": {
5503
5947
  "filename": "src/types.ts",
5504
- "line": 261
5948
+ "line": 262
5505
5949
  },
5506
5950
  "name": "responseMappingTemplate",
5507
5951
  "optional": true,
@@ -5523,7 +5967,7 @@
5523
5967
  "kind": "interface",
5524
5968
  "locationInModule": {
5525
5969
  "filename": "src/types.ts",
5526
- "line": 25
5970
+ "line": 26
5527
5971
  },
5528
5972
  "name": "IAMAuthorizationConfig",
5529
5973
  "properties": [
@@ -5536,7 +5980,7 @@
5536
5980
  "immutable": true,
5537
5981
  "locationInModule": {
5538
5982
  "filename": "src/types.ts",
5539
- "line": 35
5983
+ "line": 36
5540
5984
  },
5541
5985
  "name": "authenticatedUserRole",
5542
5986
  "type": {
@@ -5553,7 +5997,7 @@
5553
5997
  "immutable": true,
5554
5998
  "locationInModule": {
5555
5999
  "filename": "src/types.ts",
5556
- "line": 30
6000
+ "line": 31
5557
6001
  },
5558
6002
  "name": "identityPoolId",
5559
6003
  "type": {
@@ -5569,7 +6013,7 @@
5569
6013
  "immutable": true,
5570
6014
  "locationInModule": {
5571
6015
  "filename": "src/types.ts",
5572
- "line": 40
6016
+ "line": 41
5573
6017
  },
5574
6018
  "name": "unauthenticatedUserRole",
5575
6019
  "type": {
@@ -5586,7 +6030,7 @@
5586
6030
  "immutable": true,
5587
6031
  "locationInModule": {
5588
6032
  "filename": "src/types.ts",
5589
- "line": 47
6033
+ "line": 48
5590
6034
  },
5591
6035
  "name": "allowListedRoles",
5592
6036
  "optional": true,
@@ -5621,10 +6065,45 @@
5621
6065
  "kind": "interface",
5622
6066
  "locationInModule": {
5623
6067
  "filename": "src/types.ts",
5624
- "line": 500
6068
+ "line": 522
5625
6069
  },
5626
6070
  "name": "IAmplifyGraphqlDefinition",
5627
6071
  "properties": [
6072
+ {
6073
+ "abstract": true,
6074
+ "docs": {
6075
+ "remarks": "**NOTE** Explicitly specifying the 'dataSourceStrategies' configuration option is in preview and is not recommended to use with\nproduction systems. For production, use the static factory methods `fromString` or `fromFiles`.",
6076
+ "returns": "datasource strategy mapping",
6077
+ "stability": "experimental",
6078
+ "summary": "Retrieve the datasource strategy mapping. The default strategy is to use DynamoDB from CloudFormation."
6079
+ },
6080
+ "immutable": true,
6081
+ "locationInModule": {
6082
+ "filename": "src/types.ts",
6083
+ "line": 551
6084
+ },
6085
+ "name": "dataSourceStrategies",
6086
+ "type": {
6087
+ "collection": {
6088
+ "elementtype": {
6089
+ "union": {
6090
+ "types": [
6091
+ {
6092
+ "fqn": "@aws-amplify/graphql-api-construct.DefaultDynamoDbModelDataSourceStrategy"
6093
+ },
6094
+ {
6095
+ "fqn": "@aws-amplify/graphql-api-construct.AmplifyDynamoDbModelDataSourceStrategy"
6096
+ },
6097
+ {
6098
+ "fqn": "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy"
6099
+ }
6100
+ ]
6101
+ }
6102
+ },
6103
+ "kind": "map"
6104
+ }
6105
+ }
6106
+ },
5628
6107
  {
5629
6108
  "abstract": true,
5630
6109
  "docs": {
@@ -5635,7 +6114,7 @@
5635
6114
  "immutable": true,
5636
6115
  "locationInModule": {
5637
6116
  "filename": "src/types.ts",
5638
- "line": 511
6117
+ "line": 533
5639
6118
  },
5640
6119
  "name": "functionSlots",
5641
6120
  "type": {
@@ -5669,12 +6148,36 @@
5669
6148
  "immutable": true,
5670
6149
  "locationInModule": {
5671
6150
  "filename": "src/types.ts",
5672
- "line": 505
6151
+ "line": 527
5673
6152
  },
5674
6153
  "name": "schema",
5675
6154
  "type": {
5676
6155
  "primitive": "string"
5677
6156
  }
6157
+ },
6158
+ {
6159
+ "abstract": true,
6160
+ "docs": {
6161
+ "remarks": "Useful for wiring through aws_lambda.Function constructs into the definition directly,\nand generated references to invoke them.",
6162
+ "returns": "any lambda functions, keyed by their referenced 'name' in the generated schema.",
6163
+ "stability": "stable",
6164
+ "summary": "Retrieve the references to any lambda functions used in the definition."
6165
+ },
6166
+ "immutable": true,
6167
+ "locationInModule": {
6168
+ "filename": "src/types.ts",
6169
+ "line": 541
6170
+ },
6171
+ "name": "referencedLambdaFunctions",
6172
+ "optional": true,
6173
+ "type": {
6174
+ "collection": {
6175
+ "elementtype": {
6176
+ "fqn": "aws-cdk-lib.aws_lambda.IFunction"
6177
+ },
6178
+ "kind": "map"
6179
+ }
6180
+ }
5678
6181
  }
5679
6182
  ],
5680
6183
  "symbolId": "src/types:IAmplifyGraphqlDefinition"
@@ -5689,7 +6192,7 @@
5689
6192
  "kind": "interface",
5690
6193
  "locationInModule": {
5691
6194
  "filename": "src/types.ts",
5692
- "line": 517
6195
+ "line": 557
5693
6196
  },
5694
6197
  "name": "IBackendOutputEntry",
5695
6198
  "properties": [
@@ -5702,7 +6205,7 @@
5702
6205
  "immutable": true,
5703
6206
  "locationInModule": {
5704
6207
  "filename": "src/types.ts",
5705
- "line": 526
6208
+ "line": 566
5706
6209
  },
5707
6210
  "name": "payload",
5708
6211
  "type": {
@@ -5723,7 +6226,7 @@
5723
6226
  "immutable": true,
5724
6227
  "locationInModule": {
5725
6228
  "filename": "src/types.ts",
5726
- "line": 521
6229
+ "line": 561
5727
6230
  },
5728
6231
  "name": "version",
5729
6232
  "type": {
@@ -5743,7 +6246,7 @@
5743
6246
  "kind": "interface",
5744
6247
  "locationInModule": {
5745
6248
  "filename": "src/types.ts",
5746
- "line": 532
6249
+ "line": 572
5747
6250
  },
5748
6251
  "methods": [
5749
6252
  {
@@ -5754,7 +6257,7 @@
5754
6257
  },
5755
6258
  "locationInModule": {
5756
6259
  "filename": "src/types.ts",
5757
- "line": 539
6260
+ "line": 579
5758
6261
  },
5759
6262
  "name": "addBackendOutputEntry",
5760
6263
  "parameters": [
@@ -5793,7 +6296,7 @@
5793
6296
  "kind": "interface",
5794
6297
  "locationInModule": {
5795
6298
  "filename": "src/types.ts",
5796
- "line": 111
6299
+ "line": 112
5797
6300
  },
5798
6301
  "name": "LambdaAuthorizationConfig",
5799
6302
  "properties": [
@@ -5806,7 +6309,7 @@
5806
6309
  "immutable": true,
5807
6310
  "locationInModule": {
5808
6311
  "filename": "src/types.ts",
5809
- "line": 115
6312
+ "line": 116
5810
6313
  },
5811
6314
  "name": "function",
5812
6315
  "type": {
@@ -5822,7 +6325,7 @@
5822
6325
  "immutable": true,
5823
6326
  "locationInModule": {
5824
6327
  "filename": "src/types.ts",
5825
- "line": 120
6328
+ "line": 121
5826
6329
  },
5827
6330
  "name": "ttl",
5828
6331
  "type": {
@@ -5846,7 +6349,7 @@
5846
6349
  "kind": "interface",
5847
6350
  "locationInModule": {
5848
6351
  "filename": "src/types.ts",
5849
- "line": 288
6352
+ "line": 289
5850
6353
  },
5851
6354
  "name": "MutationFunctionSlot",
5852
6355
  "properties": [
@@ -5860,7 +6363,7 @@
5860
6363
  "immutable": true,
5861
6364
  "locationInModule": {
5862
6365
  "filename": "src/types.ts",
5863
- "line": 298
6366
+ "line": 299
5864
6367
  },
5865
6368
  "name": "slotName",
5866
6369
  "type": {
@@ -5876,7 +6379,7 @@
5876
6379
  "immutable": true,
5877
6380
  "locationInModule": {
5878
6381
  "filename": "src/types.ts",
5879
- "line": 292
6382
+ "line": 293
5880
6383
  },
5881
6384
  "name": "typeName",
5882
6385
  "type": {
@@ -5897,7 +6400,7 @@
5897
6400
  "kind": "interface",
5898
6401
  "locationInModule": {
5899
6402
  "filename": "src/types.ts",
5900
- "line": 63
6403
+ "line": 64
5901
6404
  },
5902
6405
  "name": "OIDCAuthorizationConfig",
5903
6406
  "properties": [
@@ -5910,7 +6413,7 @@
5910
6413
  "immutable": true,
5911
6414
  "locationInModule": {
5912
6415
  "filename": "src/types.ts",
5913
- "line": 72
6416
+ "line": 73
5914
6417
  },
5915
6418
  "name": "oidcIssuerUrl",
5916
6419
  "type": {
@@ -5926,7 +6429,7 @@
5926
6429
  "immutable": true,
5927
6430
  "locationInModule": {
5928
6431
  "filename": "src/types.ts",
5929
- "line": 67
6432
+ "line": 68
5930
6433
  },
5931
6434
  "name": "oidcProviderName",
5932
6435
  "type": {
@@ -5943,7 +6446,7 @@
5943
6446
  "immutable": true,
5944
6447
  "locationInModule": {
5945
6448
  "filename": "src/types.ts",
5946
- "line": 84
6449
+ "line": 85
5947
6450
  },
5948
6451
  "name": "tokenExpiryFromAuth",
5949
6452
  "type": {
@@ -5960,7 +6463,7 @@
5960
6463
  "immutable": true,
5961
6464
  "locationInModule": {
5962
6465
  "filename": "src/types.ts",
5963
- "line": 90
6466
+ "line": 91
5964
6467
  },
5965
6468
  "name": "tokenExpiryFromIssue",
5966
6469
  "type": {
@@ -5977,7 +6480,7 @@
5977
6480
  "immutable": true,
5978
6481
  "locationInModule": {
5979
6482
  "filename": "src/types.ts",
5980
- "line": 78
6483
+ "line": 79
5981
6484
  },
5982
6485
  "name": "clientId",
5983
6486
  "optional": true,
@@ -6002,7 +6505,7 @@
6002
6505
  "kind": "interface",
6003
6506
  "locationInModule": {
6004
6507
  "filename": "src/types.ts",
6005
- "line": 200
6508
+ "line": 201
6006
6509
  },
6007
6510
  "name": "OptimisticConflictResolutionStrategy",
6008
6511
  "properties": [
@@ -6016,7 +6519,7 @@
6016
6519
  "immutable": true,
6017
6520
  "locationInModule": {
6018
6521
  "filename": "src/types.ts",
6019
- "line": 205
6522
+ "line": 206
6020
6523
  },
6021
6524
  "name": "handlerType",
6022
6525
  "type": {
@@ -6037,10 +6540,29 @@
6037
6540
  "kind": "interface",
6038
6541
  "locationInModule": {
6039
6542
  "filename": "src/types.ts",
6040
- "line": 422
6543
+ "line": 430
6041
6544
  },
6042
6545
  "name": "PartialTranslationBehavior",
6043
6546
  "properties": [
6547
+ {
6548
+ "abstract": true,
6549
+ "docs": {
6550
+ "default": "false",
6551
+ "remarks": "- Removing or renaming a model\n - Modifying the primary key of a model\n - Modifying a Local Secondary Index of a model (only applies to projects with secondaryKeyAsGSI turned off)\n\nALL DATA WILL BE LOST when the table replacement happens. When enabled, destructive updates are allowed.\nThis will only affect DynamoDB tables with provision strategy \"AMPLIFY_TABLE\".",
6552
+ "stability": "experimental",
6553
+ "summary": "The following schema updates require replacement of the underlying DynamoDB table:."
6554
+ },
6555
+ "immutable": true,
6556
+ "locationInModule": {
6557
+ "filename": "src/types.ts",
6558
+ "line": 516
6559
+ },
6560
+ "name": "allowDestructiveGraphqlSchemaUpdates",
6561
+ "optional": true,
6562
+ "type": {
6563
+ "primitive": "boolean"
6564
+ }
6565
+ },
6044
6566
  {
6045
6567
  "abstract": true,
6046
6568
  "docs": {
@@ -6051,7 +6573,7 @@
6051
6573
  "immutable": true,
6052
6574
  "locationInModule": {
6053
6575
  "filename": "src/types.ts",
6054
- "line": 434
6576
+ "line": 442
6055
6577
  },
6056
6578
  "name": "disableResolverDeduping",
6057
6579
  "optional": true,
@@ -6073,7 +6595,7 @@
6073
6595
  "immutable": true,
6074
6596
  "locationInModule": {
6075
6597
  "filename": "src/types.ts",
6076
- "line": 473
6598
+ "line": 481
6077
6599
  },
6078
6600
  "name": "enableAutoIndexQueryNames",
6079
6601
  "optional": true,
@@ -6092,7 +6614,7 @@
6092
6614
  "immutable": true,
6093
6615
  "locationInModule": {
6094
6616
  "filename": "src/types.ts",
6095
- "line": 488
6617
+ "line": 496
6096
6618
  },
6097
6619
  "name": "enableSearchNodeToNodeEncryption",
6098
6620
  "optional": true,
@@ -6110,7 +6632,7 @@
6110
6632
  "immutable": true,
6111
6633
  "locationInModule": {
6112
6634
  "filename": "src/types.ts",
6113
- "line": 494
6635
+ "line": 502
6114
6636
  },
6115
6637
  "name": "enableTransformerCfnOutputs",
6116
6638
  "optional": true,
@@ -6128,7 +6650,7 @@
6128
6650
  "immutable": true,
6129
6651
  "locationInModule": {
6130
6652
  "filename": "src/types.ts",
6131
- "line": 453
6653
+ "line": 461
6132
6654
  },
6133
6655
  "name": "populateOwnerFieldForStaticGroupAuth",
6134
6656
  "optional": true,
@@ -6146,7 +6668,7 @@
6146
6668
  "immutable": true,
6147
6669
  "locationInModule": {
6148
6670
  "filename": "src/types.ts",
6149
- "line": 479
6671
+ "line": 487
6150
6672
  },
6151
6673
  "name": "respectPrimaryKeyAttributesOnConnectionField",
6152
6674
  "optional": true,
@@ -6164,7 +6686,7 @@
6164
6686
  "immutable": true,
6165
6687
  "locationInModule": {
6166
6688
  "filename": "src/types.ts",
6167
- "line": 440
6689
+ "line": 448
6168
6690
  },
6169
6691
  "name": "sandboxModeEnabled",
6170
6692
  "optional": true,
@@ -6185,7 +6707,7 @@
6185
6707
  "immutable": true,
6186
6708
  "locationInModule": {
6187
6709
  "filename": "src/types.ts",
6188
- "line": 466
6710
+ "line": 474
6189
6711
  },
6190
6712
  "name": "secondaryKeyAsGSI",
6191
6713
  "optional": true,
@@ -6206,7 +6728,7 @@
6206
6728
  "immutable": true,
6207
6729
  "locationInModule": {
6208
6730
  "filename": "src/types.ts",
6209
- "line": 427
6731
+ "line": 435
6210
6732
  },
6211
6733
  "name": "shouldDeepMergeDirectiveConfigDefaults",
6212
6734
  "optional": true,
@@ -6225,7 +6747,7 @@
6225
6747
  "immutable": true,
6226
6748
  "locationInModule": {
6227
6749
  "filename": "src/types.ts",
6228
- "line": 460
6750
+ "line": 468
6229
6751
  },
6230
6752
  "name": "suppressApiKeyGeneration",
6231
6753
  "optional": true,
@@ -6243,7 +6765,7 @@
6243
6765
  "immutable": true,
6244
6766
  "locationInModule": {
6245
6767
  "filename": "src/types.ts",
6246
- "line": 447
6768
+ "line": 455
6247
6769
  },
6248
6770
  "name": "useSubUsernameForDefaultIdentityClaim",
6249
6771
  "optional": true,
@@ -6254,75 +6776,587 @@
6254
6776
  ],
6255
6777
  "symbolId": "src/types:PartialTranslationBehavior"
6256
6778
  },
6257
- "@aws-amplify/graphql-api-construct.QueryFunctionSlot": {
6779
+ "@aws-amplify/graphql-api-construct.ProvisionedConcurrencyConfig": {
6258
6780
  "assembly": "@aws-amplify/graphql-api-construct",
6259
6781
  "datatype": true,
6260
6782
  "docs": {
6261
- "stability": "stable",
6262
- "summary": "Slot types for Query Resolvers."
6783
+ "stability": "experimental",
6784
+ "summary": "The configuration for the provisioned concurrency of the Lambda."
6263
6785
  },
6264
- "fqn": "@aws-amplify/graphql-api-construct.QueryFunctionSlot",
6265
- "interfaces": [
6266
- "@aws-amplify/graphql-api-construct.FunctionSlotBase"
6267
- ],
6786
+ "fqn": "@aws-amplify/graphql-api-construct.ProvisionedConcurrencyConfig",
6268
6787
  "kind": "interface",
6269
6788
  "locationInModule": {
6270
6789
  "filename": "src/types.ts",
6271
- "line": 304
6790
+ "line": 903
6272
6791
  },
6273
- "name": "QueryFunctionSlot",
6792
+ "name": "ProvisionedConcurrencyConfig",
6274
6793
  "properties": [
6275
6794
  {
6276
6795
  "abstract": true,
6277
6796
  "docs": {
6278
- "remarks": "For more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers",
6279
- "stability": "stable",
6280
- "summary": "The slot name to inject this behavior into."
6281
- },
6282
- "immutable": true,
6283
- "locationInModule": {
6284
- "filename": "src/types.ts",
6285
- "line": 314
6286
- },
6287
- "name": "slotName",
6288
- "type": {
6289
- "primitive": "string"
6290
- }
6291
- },
6292
- {
6293
- "abstract": true,
6294
- "docs": {
6295
- "stability": "stable",
6296
- "summary": "This slot type applies to the Query type on the Api definition."
6797
+ "remarks": "*",
6798
+ "stability": "experimental",
6799
+ "summary": "The amount of provisioned concurrency to allocate."
6297
6800
  },
6298
6801
  "immutable": true,
6299
6802
  "locationInModule": {
6300
6803
  "filename": "src/types.ts",
6301
- "line": 308
6804
+ "line": 905
6302
6805
  },
6303
- "name": "typeName",
6806
+ "name": "provisionedConcurrentExecutions",
6304
6807
  "type": {
6305
- "primitive": "string"
6808
+ "primitive": "number"
6306
6809
  }
6307
6810
  }
6308
6811
  ],
6309
- "symbolId": "src/types:QueryFunctionSlot"
6812
+ "symbolId": "src/types:ProvisionedConcurrencyConfig"
6310
6813
  },
6311
- "@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot": {
6814
+ "@aws-amplify/graphql-api-construct.ProvisionedThroughput": {
6312
6815
  "assembly": "@aws-amplify/graphql-api-construct",
6313
6816
  "datatype": true,
6314
6817
  "docs": {
6315
6818
  "stability": "stable",
6316
- "summary": "Slot types for Subscription Resolvers."
6819
+ "summary": "Wrapper for provisioned throughput config in DDB."
6317
6820
  },
6318
- "fqn": "@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot",
6319
- "interfaces": [
6320
- "@aws-amplify/graphql-api-construct.FunctionSlotBase"
6321
- ],
6821
+ "fqn": "@aws-amplify/graphql-api-construct.ProvisionedThroughput",
6822
+ "kind": "interface",
6823
+ "locationInModule": {
6824
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
6825
+ "line": 24
6826
+ },
6827
+ "name": "ProvisionedThroughput",
6828
+ "properties": [
6829
+ {
6830
+ "abstract": true,
6831
+ "docs": {
6832
+ "stability": "stable",
6833
+ "summary": "The read capacity units on the table or index."
6834
+ },
6835
+ "immutable": true,
6836
+ "locationInModule": {
6837
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
6838
+ "line": 28
6839
+ },
6840
+ "name": "readCapacityUnits",
6841
+ "type": {
6842
+ "primitive": "number"
6843
+ }
6844
+ },
6845
+ {
6846
+ "abstract": true,
6847
+ "docs": {
6848
+ "stability": "stable",
6849
+ "summary": "The write capacity units on the table or index."
6850
+ },
6851
+ "immutable": true,
6852
+ "locationInModule": {
6853
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
6854
+ "line": 33
6855
+ },
6856
+ "name": "writeCapacityUnits",
6857
+ "type": {
6858
+ "primitive": "number"
6859
+ }
6860
+ }
6861
+ ],
6862
+ "symbolId": "src/amplify-dynamodb-table-wrapper:ProvisionedThroughput"
6863
+ },
6864
+ "@aws-amplify/graphql-api-construct.QueryFunctionSlot": {
6865
+ "assembly": "@aws-amplify/graphql-api-construct",
6866
+ "datatype": true,
6867
+ "docs": {
6868
+ "stability": "stable",
6869
+ "summary": "Slot types for Query Resolvers."
6870
+ },
6871
+ "fqn": "@aws-amplify/graphql-api-construct.QueryFunctionSlot",
6872
+ "interfaces": [
6873
+ "@aws-amplify/graphql-api-construct.FunctionSlotBase"
6874
+ ],
6875
+ "kind": "interface",
6876
+ "locationInModule": {
6877
+ "filename": "src/types.ts",
6878
+ "line": 305
6879
+ },
6880
+ "name": "QueryFunctionSlot",
6881
+ "properties": [
6882
+ {
6883
+ "abstract": true,
6884
+ "docs": {
6885
+ "remarks": "For more information on slotting, refer to https://docs.amplify.aws/cli/graphql/custom-business-logic/#extend-amplify-generated-resolvers",
6886
+ "stability": "stable",
6887
+ "summary": "The slot name to inject this behavior into."
6888
+ },
6889
+ "immutable": true,
6890
+ "locationInModule": {
6891
+ "filename": "src/types.ts",
6892
+ "line": 315
6893
+ },
6894
+ "name": "slotName",
6895
+ "type": {
6896
+ "primitive": "string"
6897
+ }
6898
+ },
6899
+ {
6900
+ "abstract": true,
6901
+ "docs": {
6902
+ "stability": "stable",
6903
+ "summary": "This slot type applies to the Query type on the Api definition."
6904
+ },
6905
+ "immutable": true,
6906
+ "locationInModule": {
6907
+ "filename": "src/types.ts",
6908
+ "line": 309
6909
+ },
6910
+ "name": "typeName",
6911
+ "type": {
6912
+ "primitive": "string"
6913
+ }
6914
+ }
6915
+ ],
6916
+ "symbolId": "src/types:QueryFunctionSlot"
6917
+ },
6918
+ "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy": {
6919
+ "assembly": "@aws-amplify/graphql-api-construct",
6920
+ "datatype": true,
6921
+ "docs": {
6922
+ "stability": "experimental",
6923
+ "summary": "A strategy that creates a Lambda to connect to a pre-existing SQL table to resolve model data."
6924
+ },
6925
+ "fqn": "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategy",
6926
+ "kind": "interface",
6927
+ "locationInModule": {
6928
+ "filename": "src/types.ts",
6929
+ "line": 841
6930
+ },
6931
+ "name": "SQLLambdaModelDataSourceStrategy",
6932
+ "properties": [
6933
+ {
6934
+ "abstract": true,
6935
+ "docs": {
6936
+ "stability": "experimental",
6937
+ "summary": "The parameters the Lambda data source will use to connect to the database."
6938
+ },
6939
+ "immutable": true,
6940
+ "locationInModule": {
6941
+ "filename": "src/types.ts",
6942
+ "line": 856
6943
+ },
6944
+ "name": "dbConnectionConfig",
6945
+ "type": {
6946
+ "fqn": "@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig"
6947
+ }
6948
+ },
6949
+ {
6950
+ "abstract": true,
6951
+ "docs": {
6952
+ "stability": "experimental",
6953
+ "summary": "The type of the SQL database used to process model operations for this definition."
6954
+ },
6955
+ "immutable": true,
6956
+ "locationInModule": {
6957
+ "filename": "src/types.ts",
6958
+ "line": 851
6959
+ },
6960
+ "name": "dbType",
6961
+ "type": {
6962
+ "primitive": "string"
6963
+ }
6964
+ },
6965
+ {
6966
+ "abstract": true,
6967
+ "docs": {
6968
+ "remarks": "This will be used to name the AppSync DataSource itself, plus any associated resources like resolver Lambdas.\nThis name must be unique across all schema definitions in a GraphQL API.",
6969
+ "stability": "experimental",
6970
+ "summary": "The name of the strategy."
6971
+ },
6972
+ "immutable": true,
6973
+ "locationInModule": {
6974
+ "filename": "src/types.ts",
6975
+ "line": 846
6976
+ },
6977
+ "name": "name",
6978
+ "type": {
6979
+ "primitive": "string"
6980
+ }
6981
+ },
6982
+ {
6983
+ "abstract": true,
6984
+ "docs": {
6985
+ "remarks": "The key is the value of the `references` attribute of the `@sql` directive in the `schema`; the value is the SQL\nto be executed.",
6986
+ "stability": "experimental",
6987
+ "summary": "Custom SQL statements."
6988
+ },
6989
+ "immutable": true,
6990
+ "locationInModule": {
6991
+ "filename": "src/types.ts",
6992
+ "line": 867
6993
+ },
6994
+ "name": "customSqlStatements",
6995
+ "optional": true,
6996
+ "type": {
6997
+ "collection": {
6998
+ "elementtype": {
6999
+ "primitive": "string"
7000
+ },
7001
+ "kind": "map"
7002
+ }
7003
+ }
7004
+ },
7005
+ {
7006
+ "abstract": true,
7007
+ "docs": {
7008
+ "stability": "experimental",
7009
+ "summary": "An optional override for the default SQL Lambda Layer."
7010
+ },
7011
+ "immutable": true,
7012
+ "locationInModule": {
7013
+ "filename": "src/types.ts",
7014
+ "line": 872
7015
+ },
7016
+ "name": "sqlLambdaLayerMapping",
7017
+ "optional": true,
7018
+ "type": {
7019
+ "collection": {
7020
+ "elementtype": {
7021
+ "primitive": "string"
7022
+ },
7023
+ "kind": "map"
7024
+ }
7025
+ }
7026
+ },
7027
+ {
7028
+ "abstract": true,
7029
+ "docs": {
7030
+ "stability": "experimental",
7031
+ "summary": "The configuration for the provisioned concurrency of the Lambda."
7032
+ },
7033
+ "immutable": true,
7034
+ "locationInModule": {
7035
+ "filename": "src/types.ts",
7036
+ "line": 877
7037
+ },
7038
+ "name": "sqlLambdaProvisionedConcurrencyConfig",
7039
+ "optional": true,
7040
+ "type": {
7041
+ "fqn": "@aws-amplify/graphql-api-construct.ProvisionedConcurrencyConfig"
7042
+ }
7043
+ },
7044
+ {
7045
+ "abstract": true,
7046
+ "docs": {
7047
+ "stability": "experimental",
7048
+ "summary": "The configuration of the VPC into which to install the Lambda."
7049
+ },
7050
+ "immutable": true,
7051
+ "locationInModule": {
7052
+ "filename": "src/types.ts",
7053
+ "line": 861
7054
+ },
7055
+ "name": "vpcConfiguration",
7056
+ "optional": true,
7057
+ "type": {
7058
+ "fqn": "@aws-amplify/graphql-api-construct.VpcConfig"
7059
+ }
7060
+ }
7061
+ ],
7062
+ "symbolId": "src/types:SQLLambdaModelDataSourceStrategy"
7063
+ },
7064
+ "@aws-amplify/graphql-api-construct.SSESpecification": {
7065
+ "assembly": "@aws-amplify/graphql-api-construct",
7066
+ "datatype": true,
7067
+ "docs": {
7068
+ "stability": "stable",
7069
+ "summary": "Represents the settings used to enable server-side encryption."
7070
+ },
7071
+ "fqn": "@aws-amplify/graphql-api-construct.SSESpecification",
7072
+ "kind": "interface",
7073
+ "locationInModule": {
7074
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7075
+ "line": 47
7076
+ },
7077
+ "name": "SSESpecification",
7078
+ "properties": [
7079
+ {
7080
+ "abstract": true,
7081
+ "docs": {
7082
+ "remarks": "If enabled (true), server-side encryption type is set to `KMS` and an AWS managed key is used ( AWS KMS charges apply).\nIf disabled (false) or not specified, server-side encryption is set to AWS owned key.",
7083
+ "stability": "stable",
7084
+ "summary": "Indicates whether server-side encryption is done using an AWS managed key or an AWS owned key."
7085
+ },
7086
+ "immutable": true,
7087
+ "locationInModule": {
7088
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7089
+ "line": 53
7090
+ },
7091
+ "name": "sseEnabled",
7092
+ "type": {
7093
+ "primitive": "boolean"
7094
+ }
7095
+ },
7096
+ {
7097
+ "abstract": true,
7098
+ "docs": {
7099
+ "remarks": "To specify a key, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide\nthis parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb` .",
7100
+ "stability": "stable",
7101
+ "summary": "The AWS KMS key that should be used for the AWS KMS encryption."
7102
+ },
7103
+ "immutable": true,
7104
+ "locationInModule": {
7105
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7106
+ "line": 60
7107
+ },
7108
+ "name": "kmsMasterKeyId",
7109
+ "optional": true,
7110
+ "type": {
7111
+ "primitive": "string"
7112
+ }
7113
+ },
7114
+ {
7115
+ "abstract": true,
7116
+ "docs": {
7117
+ "remarks": "The only supported value is:\n`KMS` Server-side encryption that uses AWS Key Management Service.\n The key is stored in your account and is managed by AWS KMS ( AWS KMS charges apply).",
7118
+ "stability": "stable",
7119
+ "summary": "Server-side encryption type."
7120
+ },
7121
+ "immutable": true,
7122
+ "locationInModule": {
7123
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7124
+ "line": 67
7125
+ },
7126
+ "name": "sseType",
7127
+ "optional": true,
7128
+ "type": {
7129
+ "fqn": "@aws-amplify/graphql-api-construct.SSEType"
7130
+ }
7131
+ }
7132
+ ],
7133
+ "symbolId": "src/amplify-dynamodb-table-wrapper:SSESpecification"
7134
+ },
7135
+ "@aws-amplify/graphql-api-construct.SSEType": {
7136
+ "assembly": "@aws-amplify/graphql-api-construct",
7137
+ "docs": {
7138
+ "remarks": "The key is stored in your account and is managed by KMS (AWS KMS charges apply).",
7139
+ "stability": "stable",
7140
+ "summary": "Server Side Encryption Type Values - `KMS` - Server-side encryption that uses AWS KMS."
7141
+ },
7142
+ "fqn": "@aws-amplify/graphql-api-construct.SSEType",
7143
+ "kind": "enum",
7144
+ "locationInModule": {
7145
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7146
+ "line": 40
7147
+ },
7148
+ "members": [
7149
+ {
7150
+ "docs": {
7151
+ "stability": "stable"
7152
+ },
7153
+ "name": "KMS"
7154
+ }
7155
+ ],
7156
+ "name": "SSEType",
7157
+ "symbolId": "src/amplify-dynamodb-table-wrapper:SSEType"
7158
+ },
7159
+ "@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig": {
7160
+ "assembly": "@aws-amplify/graphql-api-construct",
7161
+ "datatype": true,
7162
+ "docs": {
7163
+ "remarks": "These parameters are retrieved from Secure Systems Manager in the same region as the Lambda.",
7164
+ "stability": "experimental",
7165
+ "summary": "The Secure Systems Manager parameter paths the Lambda data source will use to connect to the database."
7166
+ },
7167
+ "fqn": "@aws-amplify/graphql-api-construct.SqlModelDataSourceDbConnectionConfig",
7168
+ "kind": "interface",
7169
+ "locationInModule": {
7170
+ "filename": "src/types.ts",
7171
+ "line": 934
7172
+ },
7173
+ "name": "SqlModelDataSourceDbConnectionConfig",
7174
+ "properties": [
7175
+ {
7176
+ "abstract": true,
7177
+ "docs": {
7178
+ "stability": "experimental",
7179
+ "summary": "The Secure Systems Manager parameter containing the database name."
7180
+ },
7181
+ "immutable": true,
7182
+ "locationInModule": {
7183
+ "filename": "src/types.ts",
7184
+ "line": 950
7185
+ },
7186
+ "name": "databaseNameSsmPath",
7187
+ "type": {
7188
+ "primitive": "string"
7189
+ }
7190
+ },
7191
+ {
7192
+ "abstract": true,
7193
+ "docs": {
7194
+ "remarks": "For RDS-based SQL data sources, this can be the hostname\nof a database proxy, cluster, or instance.",
7195
+ "stability": "experimental",
7196
+ "summary": "The Secure Systems Manager parameter containing the hostname of the database."
7197
+ },
7198
+ "immutable": true,
7199
+ "locationInModule": {
7200
+ "filename": "src/types.ts",
7201
+ "line": 938
7202
+ },
7203
+ "name": "hostnameSsmPath",
7204
+ "type": {
7205
+ "primitive": "string"
7206
+ }
7207
+ },
7208
+ {
7209
+ "abstract": true,
7210
+ "docs": {
7211
+ "stability": "experimental",
7212
+ "summary": "The Secure Systems Manager parameter containing the password to use when connecting to the database."
7213
+ },
7214
+ "immutable": true,
7215
+ "locationInModule": {
7216
+ "filename": "src/types.ts",
7217
+ "line": 947
7218
+ },
7219
+ "name": "passwordSsmPath",
7220
+ "type": {
7221
+ "primitive": "string"
7222
+ }
7223
+ },
7224
+ {
7225
+ "abstract": true,
7226
+ "docs": {
7227
+ "stability": "experimental",
7228
+ "summary": "The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance."
7229
+ },
7230
+ "immutable": true,
7231
+ "locationInModule": {
7232
+ "filename": "src/types.ts",
7233
+ "line": 941
7234
+ },
7235
+ "name": "portSsmPath",
7236
+ "type": {
7237
+ "primitive": "string"
7238
+ }
7239
+ },
7240
+ {
7241
+ "abstract": true,
7242
+ "docs": {
7243
+ "stability": "experimental",
7244
+ "summary": "The Secure Systems Manager parameter containing the username to use when connecting to the database."
7245
+ },
7246
+ "immutable": true,
7247
+ "locationInModule": {
7248
+ "filename": "src/types.ts",
7249
+ "line": 944
7250
+ },
7251
+ "name": "usernameSsmPath",
7252
+ "type": {
7253
+ "primitive": "string"
7254
+ }
7255
+ }
7256
+ ],
7257
+ "symbolId": "src/types:SqlModelDataSourceDbConnectionConfig"
7258
+ },
7259
+ "@aws-amplify/graphql-api-construct.StreamSpecification": {
7260
+ "assembly": "@aws-amplify/graphql-api-construct",
7261
+ "datatype": true,
7262
+ "docs": {
7263
+ "stability": "stable",
7264
+ "summary": "Represents the DynamoDB Streams configuration for a table in DynamoDB."
7265
+ },
7266
+ "fqn": "@aws-amplify/graphql-api-construct.StreamSpecification",
7267
+ "kind": "interface",
7268
+ "locationInModule": {
7269
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7270
+ "line": 73
7271
+ },
7272
+ "name": "StreamSpecification",
7273
+ "properties": [
7274
+ {
7275
+ "abstract": true,
7276
+ "docs": {
7277
+ "remarks": "Valid values for `StreamViewType` are:\n- `KEYS_ONLY` - Only the key attributes of the modified item are written to the stream.\n- `NEW_IMAGE` - The entire item, as it appears after it was modified, is written to the stream.\n- `OLD_IMAGE` - The entire item, as it appeared before it was modified, is written to the stream.\n- `NEW_AND_OLD_IMAGES` - Both the new and the old item images of the item are written to the stream.",
7278
+ "stability": "stable",
7279
+ "summary": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table."
7280
+ },
7281
+ "immutable": true,
7282
+ "locationInModule": {
7283
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7284
+ "line": 82
7285
+ },
7286
+ "name": "streamViewType",
7287
+ "type": {
7288
+ "fqn": "aws-cdk-lib.aws_dynamodb.StreamViewType"
7289
+ }
7290
+ }
7291
+ ],
7292
+ "symbolId": "src/amplify-dynamodb-table-wrapper:StreamSpecification"
7293
+ },
7294
+ "@aws-amplify/graphql-api-construct.SubnetAvailabilityZone": {
7295
+ "assembly": "@aws-amplify/graphql-api-construct",
7296
+ "datatype": true,
7297
+ "docs": {
7298
+ "remarks": "Although it is possible to create multiple\nsubnets in a single availability zone, VPC service endpoints may only be deployed to a single subnet in a given availability zone. This\nstructure ensures that the Lambda function and VPC service endpoints are mutually consistent.",
7299
+ "stability": "experimental",
7300
+ "summary": "Subnet configuration for VPC endpoints used by a Lambda resolver for a SQL-based data source."
7301
+ },
7302
+ "fqn": "@aws-amplify/graphql-api-construct.SubnetAvailabilityZone",
7303
+ "kind": "interface",
7304
+ "locationInModule": {
7305
+ "filename": "src/types.ts",
7306
+ "line": 914
7307
+ },
7308
+ "name": "SubnetAvailabilityZone",
7309
+ "properties": [
7310
+ {
7311
+ "abstract": true,
7312
+ "docs": {
7313
+ "stability": "experimental",
7314
+ "summary": "The availability zone of the subnet."
7315
+ },
7316
+ "immutable": true,
7317
+ "locationInModule": {
7318
+ "filename": "src/types.ts",
7319
+ "line": 919
7320
+ },
7321
+ "name": "availabilityZone",
7322
+ "type": {
7323
+ "primitive": "string"
7324
+ }
7325
+ },
7326
+ {
7327
+ "abstract": true,
7328
+ "docs": {
7329
+ "stability": "experimental",
7330
+ "summary": "The subnet ID to install the Lambda data source in."
7331
+ },
7332
+ "immutable": true,
7333
+ "locationInModule": {
7334
+ "filename": "src/types.ts",
7335
+ "line": 916
7336
+ },
7337
+ "name": "subnetId",
7338
+ "type": {
7339
+ "primitive": "string"
7340
+ }
7341
+ }
7342
+ ],
7343
+ "symbolId": "src/types:SubnetAvailabilityZone"
7344
+ },
7345
+ "@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot": {
7346
+ "assembly": "@aws-amplify/graphql-api-construct",
7347
+ "datatype": true,
7348
+ "docs": {
7349
+ "stability": "stable",
7350
+ "summary": "Slot types for Subscription Resolvers."
7351
+ },
7352
+ "fqn": "@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot",
7353
+ "interfaces": [
7354
+ "@aws-amplify/graphql-api-construct.FunctionSlotBase"
7355
+ ],
6322
7356
  "kind": "interface",
6323
7357
  "locationInModule": {
6324
7358
  "filename": "src/types.ts",
6325
- "line": 320
7359
+ "line": 321
6326
7360
  },
6327
7361
  "name": "SubscriptionFunctionSlot",
6328
7362
  "properties": [
@@ -6336,7 +7370,7 @@
6336
7370
  "immutable": true,
6337
7371
  "locationInModule": {
6338
7372
  "filename": "src/types.ts",
6339
- "line": 330
7373
+ "line": 331
6340
7374
  },
6341
7375
  "name": "slotName",
6342
7376
  "type": {
@@ -6352,7 +7386,7 @@
6352
7386
  "immutable": true,
6353
7387
  "locationInModule": {
6354
7388
  "filename": "src/types.ts",
6355
- "line": 324
7389
+ "line": 325
6356
7390
  },
6357
7391
  "name": "typeName",
6358
7392
  "type": {
@@ -6362,6 +7396,57 @@
6362
7396
  ],
6363
7397
  "symbolId": "src/types:SubscriptionFunctionSlot"
6364
7398
  },
7399
+ "@aws-amplify/graphql-api-construct.TimeToLiveSpecification": {
7400
+ "assembly": "@aws-amplify/graphql-api-construct",
7401
+ "datatype": true,
7402
+ "docs": {
7403
+ "stability": "stable",
7404
+ "summary": "Shape for TTL config."
7405
+ },
7406
+ "fqn": "@aws-amplify/graphql-api-construct.TimeToLiveSpecification",
7407
+ "kind": "interface",
7408
+ "locationInModule": {
7409
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7410
+ "line": 9
7411
+ },
7412
+ "name": "TimeToLiveSpecification",
7413
+ "properties": [
7414
+ {
7415
+ "abstract": true,
7416
+ "docs": {
7417
+ "stability": "stable",
7418
+ "summary": "Boolean determining if the ttl is enabled or not."
7419
+ },
7420
+ "immutable": true,
7421
+ "locationInModule": {
7422
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7423
+ "line": 13
7424
+ },
7425
+ "name": "enabled",
7426
+ "type": {
7427
+ "primitive": "boolean"
7428
+ }
7429
+ },
7430
+ {
7431
+ "abstract": true,
7432
+ "docs": {
7433
+ "stability": "stable",
7434
+ "summary": "Attribute name to apply to the ttl spec."
7435
+ },
7436
+ "immutable": true,
7437
+ "locationInModule": {
7438
+ "filename": "src/amplify-dynamodb-table-wrapper.ts",
7439
+ "line": 18
7440
+ },
7441
+ "name": "attributeName",
7442
+ "optional": true,
7443
+ "type": {
7444
+ "primitive": "string"
7445
+ }
7446
+ }
7447
+ ],
7448
+ "symbolId": "src/amplify-dynamodb-table-wrapper:TimeToLiveSpecification"
7449
+ },
6365
7450
  "@aws-amplify/graphql-api-construct.TranslationBehavior": {
6366
7451
  "assembly": "@aws-amplify/graphql-api-construct",
6367
7452
  "datatype": true,
@@ -6374,10 +7459,28 @@
6374
7459
  "kind": "interface",
6375
7460
  "locationInModule": {
6376
7461
  "filename": "src/types.ts",
6377
- "line": 344
7462
+ "line": 345
6378
7463
  },
6379
7464
  "name": "TranslationBehavior",
6380
7465
  "properties": [
7466
+ {
7467
+ "abstract": true,
7468
+ "docs": {
7469
+ "default": "false",
7470
+ "remarks": "- Removing or renaming a model\n - Modifying the primary key of a model\n - Modifying a Local Secondary Index of a model (only applies to projects with secondaryKeyAsGSI turned off)\n\nALL DATA WILL BE LOST when the table replacement happens. When enabled, destructive updates are allowed.\nThis will only affect DynamoDB tables with provision strategy \"AMPLIFY_TABLE\".",
7471
+ "stability": "experimental",
7472
+ "summary": "The following schema updates require replacement of the underlying DynamoDB table:."
7473
+ },
7474
+ "immutable": true,
7475
+ "locationInModule": {
7476
+ "filename": "src/types.ts",
7477
+ "line": 424
7478
+ },
7479
+ "name": "allowDestructiveGraphqlSchemaUpdates",
7480
+ "type": {
7481
+ "primitive": "boolean"
7482
+ }
7483
+ },
6381
7484
  {
6382
7485
  "abstract": true,
6383
7486
  "docs": {
@@ -6388,7 +7491,7 @@
6388
7491
  "immutable": true,
6389
7492
  "locationInModule": {
6390
7493
  "filename": "src/types.ts",
6391
- "line": 356
7494
+ "line": 357
6392
7495
  },
6393
7496
  "name": "disableResolverDeduping",
6394
7497
  "type": {
@@ -6409,7 +7512,7 @@
6409
7512
  "immutable": true,
6410
7513
  "locationInModule": {
6411
7514
  "filename": "src/types.ts",
6412
- "line": 395
7515
+ "line": 396
6413
7516
  },
6414
7517
  "name": "enableAutoIndexQueryNames",
6415
7518
  "type": {
@@ -6419,15 +7522,12 @@
6419
7522
  {
6420
7523
  "abstract": true,
6421
7524
  "docs": {
6422
- "default": "false",
6423
- "remarks": "Not recommended for use, prefer\nto use `Object.values(resources.additionalResources['AWS::Elasticsearch::Domain']).forEach((domain: CfnDomain) => {\n domain.NodeToNodeEncryptionOptions = { Enabled: True };\n});",
6424
- "stability": "stable",
6425
- "summary": "If enabled, set nodeToNodeEncryption on the searchable domain (if one exists)."
7525
+ "stability": "stable"
6426
7526
  },
6427
7527
  "immutable": true,
6428
7528
  "locationInModule": {
6429
7529
  "filename": "src/types.ts",
6430
- "line": 410
7530
+ "line": 404
6431
7531
  },
6432
7532
  "name": "enableSearchNodeToNodeEncryption",
6433
7533
  "type": {
@@ -6444,7 +7544,7 @@
6444
7544
  "immutable": true,
6445
7545
  "locationInModule": {
6446
7546
  "filename": "src/types.ts",
6447
- "line": 416
7547
+ "line": 410
6448
7548
  },
6449
7549
  "name": "enableTransformerCfnOutputs",
6450
7550
  "type": {
@@ -6461,7 +7561,7 @@
6461
7561
  "immutable": true,
6462
7562
  "locationInModule": {
6463
7563
  "filename": "src/types.ts",
6464
- "line": 375
7564
+ "line": 376
6465
7565
  },
6466
7566
  "name": "populateOwnerFieldForStaticGroupAuth",
6467
7567
  "type": {
@@ -6478,7 +7578,7 @@
6478
7578
  "immutable": true,
6479
7579
  "locationInModule": {
6480
7580
  "filename": "src/types.ts",
6481
- "line": 401
7581
+ "line": 402
6482
7582
  },
6483
7583
  "name": "respectPrimaryKeyAttributesOnConnectionField",
6484
7584
  "type": {
@@ -6495,7 +7595,7 @@
6495
7595
  "immutable": true,
6496
7596
  "locationInModule": {
6497
7597
  "filename": "src/types.ts",
6498
- "line": 362
7598
+ "line": 363
6499
7599
  },
6500
7600
  "name": "sandboxModeEnabled",
6501
7601
  "type": {
@@ -6515,7 +7615,7 @@
6515
7615
  "immutable": true,
6516
7616
  "locationInModule": {
6517
7617
  "filename": "src/types.ts",
6518
- "line": 388
7618
+ "line": 389
6519
7619
  },
6520
7620
  "name": "secondaryKeyAsGSI",
6521
7621
  "type": {
@@ -6535,7 +7635,7 @@
6535
7635
  "immutable": true,
6536
7636
  "locationInModule": {
6537
7637
  "filename": "src/types.ts",
6538
- "line": 349
7638
+ "line": 350
6539
7639
  },
6540
7640
  "name": "shouldDeepMergeDirectiveConfigDefaults",
6541
7641
  "type": {
@@ -6553,7 +7653,7 @@
6553
7653
  "immutable": true,
6554
7654
  "locationInModule": {
6555
7655
  "filename": "src/types.ts",
6556
- "line": 382
7656
+ "line": 383
6557
7657
  },
6558
7658
  "name": "suppressApiKeyGeneration",
6559
7659
  "type": {
@@ -6570,7 +7670,7 @@
6570
7670
  "immutable": true,
6571
7671
  "locationInModule": {
6572
7672
  "filename": "src/types.ts",
6573
- "line": 369
7673
+ "line": 370
6574
7674
  },
6575
7675
  "name": "useSubUsernameForDefaultIdentityClaim",
6576
7676
  "type": {
@@ -6591,7 +7691,7 @@
6591
7691
  "kind": "interface",
6592
7692
  "locationInModule": {
6593
7693
  "filename": "src/types.ts",
6594
- "line": 53
7694
+ "line": 54
6595
7695
  },
6596
7696
  "name": "UserPoolAuthorizationConfig",
6597
7697
  "properties": [
@@ -6604,7 +7704,7 @@
6604
7704
  "immutable": true,
6605
7705
  "locationInModule": {
6606
7706
  "filename": "src/types.ts",
6607
- "line": 57
7707
+ "line": 58
6608
7708
  },
6609
7709
  "name": "userPool",
6610
7710
  "type": {
@@ -6613,8 +7713,85 @@
6613
7713
  }
6614
7714
  ],
6615
7715
  "symbolId": "src/types:UserPoolAuthorizationConfig"
7716
+ },
7717
+ "@aws-amplify/graphql-api-construct.VpcConfig": {
7718
+ "assembly": "@aws-amplify/graphql-api-construct",
7719
+ "datatype": true,
7720
+ "docs": {
7721
+ "remarks": "The SQL Lambda will be deployed\ninto the specified VPC, subnets, and security groups. The specified subnets and security groups must be in the same VPC. The VPC must\nhave at least one subnet. The construct will also create VPC service endpoints in the specified subnets, as well as inbound security\nrules, to allow traffic on port 443 within each security group. This allows the Lambda to read database connection information from\nSecure Systems Manager.",
7722
+ "stability": "experimental",
7723
+ "summary": "Configuration of the VPC in which to install a Lambda to resolve queries against a SQL-based data source."
7724
+ },
7725
+ "fqn": "@aws-amplify/graphql-api-construct.VpcConfig",
7726
+ "kind": "interface",
7727
+ "locationInModule": {
7728
+ "filename": "src/types.ts",
7729
+ "line": 888
7730
+ },
7731
+ "name": "VpcConfig",
7732
+ "properties": [
7733
+ {
7734
+ "abstract": true,
7735
+ "docs": {
7736
+ "stability": "experimental",
7737
+ "summary": "The security groups to install the Lambda data source in."
7738
+ },
7739
+ "immutable": true,
7740
+ "locationInModule": {
7741
+ "filename": "src/types.ts",
7742
+ "line": 893
7743
+ },
7744
+ "name": "securityGroupIds",
7745
+ "type": {
7746
+ "collection": {
7747
+ "elementtype": {
7748
+ "primitive": "string"
7749
+ },
7750
+ "kind": "array"
7751
+ }
7752
+ }
7753
+ },
7754
+ {
7755
+ "abstract": true,
7756
+ "docs": {
7757
+ "stability": "experimental",
7758
+ "summary": "The subnets to install the Lambda data source in, one per availability zone."
7759
+ },
7760
+ "immutable": true,
7761
+ "locationInModule": {
7762
+ "filename": "src/types.ts",
7763
+ "line": 896
7764
+ },
7765
+ "name": "subnetAvailabilityZoneConfig",
7766
+ "type": {
7767
+ "collection": {
7768
+ "elementtype": {
7769
+ "fqn": "@aws-amplify/graphql-api-construct.SubnetAvailabilityZone"
7770
+ },
7771
+ "kind": "array"
7772
+ }
7773
+ }
7774
+ },
7775
+ {
7776
+ "abstract": true,
7777
+ "docs": {
7778
+ "stability": "experimental",
7779
+ "summary": "The VPC to install the Lambda data source in."
7780
+ },
7781
+ "immutable": true,
7782
+ "locationInModule": {
7783
+ "filename": "src/types.ts",
7784
+ "line": 890
7785
+ },
7786
+ "name": "vpcId",
7787
+ "type": {
7788
+ "primitive": "string"
7789
+ }
7790
+ }
7791
+ ],
7792
+ "symbolId": "src/types:VpcConfig"
6616
7793
  }
6617
7794
  },
6618
- "version": "1.3.0",
6619
- "fingerprint": "4OlpqcCWFjd6hzmDDc78ZTomxrQEiNLkB9HVErWvQFY="
7795
+ "version": "1.4.0-nov-14-cut.0",
7796
+ "fingerprint": "1fpxd7QS8+G872Bs4IXjmV1xFSMrtHU8ofgZtZXopq0="
6620
7797
  }