@aws-amplify/graphql-api-construct 1.12.1-async-lambda.0 → 1.13.0-ai.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. package/.jsii +22 -22
  2. package/CHANGELOG.md +11 -1
  3. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  4. package/lib/amplify-graphql-api.js +1 -1
  5. package/lib/amplify-graphql-definition.js +1 -1
  6. package/lib/internal/construct-exports.js +70 -4
  7. package/lib/sql-model-datasource-strategy.js +1 -1
  8. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/conversation_handler_construct.js +5 -2
  9. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/event-tools-provider/graphql_query_factory.js +16 -5
  10. package/node_modules/@aws-amplify/ai-constructs/package.json +1 -1
  11. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +0 -4
  12. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +14 -15
  13. package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +7 -1
  14. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/list-message-post-data-load-resolver.d.ts +3 -0
  15. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/list-message-post-data-load-resolver.d.ts.map +1 -0
  16. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/list-message-post-data-load-resolver.js +48 -0
  17. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/resolvers/list-message-post-data-load-resolver.js.map +1 -0
  18. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts +1 -0
  19. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.d.ts.map +1 -1
  20. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js +15 -0
  21. package/node_modules/@aws-amplify/graphql-conversation-transformer/lib/transformer-steps/conversation-resolver-generator.js.map +1 -1
  22. package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +12 -12
  23. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +0 -4
  24. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +9 -10
  25. package/node_modules/@aws-amplify/graphql-directives/API.md +1 -6
  26. package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +0 -6
  27. package/node_modules/@aws-amplify/graphql-directives/lib/directives/function.d.ts +1 -4
  28. package/node_modules/@aws-amplify/graphql-directives/lib/directives/function.d.ts.map +1 -1
  29. package/node_modules/@aws-amplify/graphql-directives/lib/directives/function.js +2 -8
  30. package/node_modules/@aws-amplify/graphql-directives/lib/directives/function.js.map +1 -1
  31. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.d.ts +1 -1
  32. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.d.ts.map +1 -1
  33. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.js.map +1 -1
  34. package/node_modules/@aws-amplify/graphql-directives/package.json +2 -3
  35. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +0 -6
  36. package/node_modules/@aws-amplify/graphql-function-transformer/lib/graphql-function-transformer.d.ts.map +1 -1
  37. package/node_modules/@aws-amplify/graphql-function-transformer/lib/graphql-function-transformer.js +4 -120
  38. package/node_modules/@aws-amplify/graphql-function-transformer/lib/graphql-function-transformer.js.map +1 -1
  39. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +8 -9
  40. package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +0 -4
  41. package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +8 -9
  42. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +0 -4
  43. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +8 -9
  44. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +0 -4
  45. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +9 -10
  46. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +0 -4
  47. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  48. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +12 -13
  49. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +0 -4
  50. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  51. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  52. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  53. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +8 -9
  54. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +0 -4
  55. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  56. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +8 -9
  57. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +0 -4
  58. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +10 -11
  59. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +0 -4
  60. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  61. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +9 -10
  62. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +0 -4
  63. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +9 -10
  64. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +5 -1
  65. package/node_modules/@aws-amplify/graphql-transformer/package.json +18 -18
  66. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +0 -4
  67. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +6 -7
  68. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +0 -4
  69. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -3
  70. package/node_modules/graphql-mapping-template/CHANGELOG.md +0 -4
  71. package/node_modules/graphql-mapping-template/package.json +2 -3
  72. package/node_modules/graphql-transformer-common/CHANGELOG.md +0 -4
  73. package/node_modules/graphql-transformer-common/package.json +3 -4
  74. package/package.json +23 -23
  75. package/src/internal/construct-exports.ts +87 -4
  76. package/node_modules/@aws-amplify/graphql-auth-transformer/LICENSE +0 -201
  77. package/node_modules/@aws-amplify/graphql-default-value-transformer/LICENSE +0 -201
  78. package/node_modules/@aws-amplify/graphql-directives/LICENSE +0 -201
  79. package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +0 -201
  80. package/node_modules/@aws-amplify/graphql-generation-transformer/LICENSE +0 -201
  81. package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +0 -201
  82. package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +0 -201
  83. package/node_modules/@aws-amplify/graphql-maps-to-transformer/LICENSE +0 -201
  84. package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +0 -201
  85. package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +0 -201
  86. package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +0 -201
  87. package/node_modules/@aws-amplify/graphql-searchable-transformer/LICENSE +0 -201
  88. package/node_modules/@aws-amplify/graphql-sql-transformer/LICENSE +0 -201
  89. package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +0 -201
  90. package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +0 -201
  91. package/node_modules/graphql-mapping-template/LICENSE +0 -201
  92. package/node_modules/graphql-transformer-common/LICENSE +0 -201
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-transformer-core",
3
- "version": "3.1.1-async-lambda.0",
3
+ "version": "3.1.0",
4
4
  "description": "A framework to transform from GraphQL SDL to AWS CloudFormation.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,12 +29,12 @@
29
29
  "extract-api": "ts-node ../../scripts/extract-api.ts"
30
30
  },
31
31
  "dependencies": {
32
- "@aws-amplify/graphql-directives": "2.2.0-async-lambda.0",
33
- "@aws-amplify/graphql-transformer-interfaces": "4.1.1-async-lambda.0",
32
+ "@aws-amplify/graphql-directives": "2.1.0",
33
+ "@aws-amplify/graphql-transformer-interfaces": "4.1.0",
34
34
  "fs-extra": "^8.1.0",
35
35
  "graphql": "^15.5.0",
36
- "graphql-mapping-template": "5.0.2-async-lambda.0",
37
- "graphql-transformer-common": "5.0.2-async-lambda.0",
36
+ "graphql-mapping-template": "5.0.1",
37
+ "graphql-transformer-common": "5.0.1",
38
38
  "hjson": "^3.2.2",
39
39
  "lodash": "^4.17.21",
40
40
  "md5": "^2.3.0",
@@ -92,6 +92,5 @@
92
92
  "escapeString": true,
93
93
  "printBasicPrototype": true
94
94
  }
95
- },
96
- "gitHead": "6523549821213b017c48fc99860e76689a28b7d9"
95
+ }
97
96
  }
@@ -3,10 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [4.1.1-async-lambda.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-transformer-interfaces@4.1.0...@aws-amplify/graphql-transformer-interfaces@4.1.1-async-lambda.0) (2024-09-09)
7
-
8
- **Note:** Version bump only for package @aws-amplify/graphql-transformer-interfaces
9
-
10
6
  # [4.1.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-transformer-interfaces@4.0.1...@aws-amplify/graphql-transformer-interfaces@4.1.0) (2024-09-06)
11
7
 
12
8
  ### Features
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-transformer-interfaces",
3
- "version": "4.1.1-async-lambda.0",
3
+ "version": "4.1.0",
4
4
  "description": "Amplify GraphQL transformer interface definitions",
5
5
  "repository": {
6
6
  "type": "git",
@@ -66,6 +66,5 @@
66
66
  "escapeString": true,
67
67
  "printBasicPrototype": true
68
68
  }
69
- },
70
- "gitHead": "6523549821213b017c48fc99860e76689a28b7d9"
69
+ }
71
70
  }
@@ -3,10 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [5.0.2-async-lambda.0](https://github.com/aws-amplify/amplify-category-api/compare/graphql-mapping-template@5.0.1...graphql-mapping-template@5.0.2-async-lambda.0) (2024-09-09)
7
-
8
- **Note:** Version bump only for package graphql-mapping-template
9
-
10
6
  ## [5.0.1](https://github.com/aws-amplify/amplify-category-api/compare/graphql-mapping-template@5.0.0...graphql-mapping-template@5.0.1) (2024-09-06)
11
7
 
12
8
  **Note:** Version bump only for package graphql-mapping-template
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphql-mapping-template",
3
- "version": "5.0.2-async-lambda.0",
3
+ "version": "5.0.1",
4
4
  "description": "An AST wrapper around AWS AppSync resolvers",
5
5
  "repository": {
6
6
  "type": "git",
@@ -64,6 +64,5 @@
64
64
  "escapeString": true,
65
65
  "printBasicPrototype": true
66
66
  }
67
- },
68
- "gitHead": "6523549821213b017c48fc99860e76689a28b7d9"
67
+ }
69
68
  }
@@ -3,10 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [5.0.2-async-lambda.0](https://github.com/aws-amplify/amplify-category-api/compare/graphql-transformer-common@5.0.1...graphql-transformer-common@5.0.2-async-lambda.0) (2024-09-09)
7
-
8
- **Note:** Version bump only for package graphql-transformer-common
9
-
10
6
  ## [5.0.1](https://github.com/aws-amplify/amplify-category-api/compare/graphql-transformer-common@5.0.0...graphql-transformer-common@5.0.1) (2024-09-06)
11
7
 
12
8
  **Note:** Version bump only for package graphql-transformer-common
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphql-transformer-common",
3
- "version": "5.0.2-async-lambda.0",
3
+ "version": "5.0.1",
4
4
  "description": "Common code and constants for AppSync Transformers",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "graphql": "^15.5.0",
29
- "graphql-mapping-template": "5.0.2-async-lambda.0",
29
+ "graphql-mapping-template": "5.0.1",
30
30
  "md5": "^2.2.1",
31
31
  "pluralize": "8.0.0"
32
32
  },
@@ -72,6 +72,5 @@
72
72
  "escapeString": true,
73
73
  "printBasicPrototype": true
74
74
  }
75
- },
76
- "gitHead": "6523549821213b017c48fc99860e76689a28b7d9"
75
+ }
77
76
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-api-construct",
3
- "version": "1.12.1-async-lambda.0",
3
+ "version": "1.13.0-ai.1",
4
4
  "description": "AppSync GraphQL Api Construct using Amplify GraphQL Transformer.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -158,26 +158,26 @@
158
158
  "semver"
159
159
  ],
160
160
  "dependencies": {
161
- "@aws-amplify/ai-constructs": "^0.1.2",
161
+ "@aws-amplify/ai-constructs": "^0.1.4",
162
162
  "@aws-amplify/backend-output-schemas": "^1.0.0",
163
163
  "@aws-amplify/backend-output-storage": "^1.0.0",
164
- "@aws-amplify/graphql-auth-transformer": "4.1.1-async-lambda.0",
165
- "@aws-amplify/graphql-conversation-transformer": "0.2.1-async-lambda.0",
166
- "@aws-amplify/graphql-default-value-transformer": "3.0.3-async-lambda.0",
167
- "@aws-amplify/graphql-directives": "2.2.0-async-lambda.0",
168
- "@aws-amplify/graphql-function-transformer": "3.1.0-async-lambda.0",
169
- "@aws-amplify/graphql-generation-transformer": "0.2.1-async-lambda.0",
170
- "@aws-amplify/graphql-http-transformer": "3.0.3-async-lambda.0",
171
- "@aws-amplify/graphql-index-transformer": "3.0.3-async-lambda.0",
172
- "@aws-amplify/graphql-maps-to-transformer": "4.0.3-async-lambda.0",
173
- "@aws-amplify/graphql-model-transformer": "3.0.3-async-lambda.0",
174
- "@aws-amplify/graphql-predictions-transformer": "3.0.3-async-lambda.0",
175
- "@aws-amplify/graphql-relational-transformer": "3.0.3-async-lambda.0",
176
- "@aws-amplify/graphql-searchable-transformer": "3.0.3-async-lambda.0",
177
- "@aws-amplify/graphql-sql-transformer": "0.4.3-async-lambda.0",
178
- "@aws-amplify/graphql-transformer": "2.1.1-async-lambda.0",
179
- "@aws-amplify/graphql-transformer-core": "3.1.1-async-lambda.0",
180
- "@aws-amplify/graphql-transformer-interfaces": "4.1.1-async-lambda.0",
164
+ "@aws-amplify/graphql-auth-transformer": "4.1.0",
165
+ "@aws-amplify/graphql-conversation-transformer": "0.2.1-ai.1",
166
+ "@aws-amplify/graphql-default-value-transformer": "3.0.2",
167
+ "@aws-amplify/graphql-directives": "2.1.0",
168
+ "@aws-amplify/graphql-function-transformer": "3.0.2",
169
+ "@aws-amplify/graphql-generation-transformer": "0.2.0",
170
+ "@aws-amplify/graphql-http-transformer": "3.0.2",
171
+ "@aws-amplify/graphql-index-transformer": "3.0.2",
172
+ "@aws-amplify/graphql-maps-to-transformer": "4.0.2",
173
+ "@aws-amplify/graphql-model-transformer": "3.0.2",
174
+ "@aws-amplify/graphql-predictions-transformer": "3.0.2",
175
+ "@aws-amplify/graphql-relational-transformer": "3.0.2",
176
+ "@aws-amplify/graphql-searchable-transformer": "3.0.2",
177
+ "@aws-amplify/graphql-sql-transformer": "0.4.2",
178
+ "@aws-amplify/graphql-transformer": "2.1.1-ai.1",
179
+ "@aws-amplify/graphql-transformer-core": "3.1.0",
180
+ "@aws-amplify/graphql-transformer-interfaces": "4.1.0",
181
181
  "@aws-amplify/platform-core": "^1.0.0",
182
182
  "@aws-amplify/plugin-types": "^1.0.0",
183
183
  "@aws-crypto/crc32": "5.2.0",
@@ -260,8 +260,8 @@
260
260
  "fs-extra": "^8.1.0",
261
261
  "graceful-fs": "^4.2.0",
262
262
  "graphql": "^15.5.0",
263
- "graphql-mapping-template": "5.0.2-async-lambda.0",
264
- "graphql-transformer-common": "5.0.2-async-lambda.0",
263
+ "graphql-mapping-template": "5.0.1",
264
+ "graphql-transformer-common": "5.0.1",
265
265
  "hjson": "^3.2.2",
266
266
  "immer": "^9.0.12",
267
267
  "is-buffer": "~1.1.6",
@@ -282,7 +282,7 @@
282
282
  "zod": "^3.22.2"
283
283
  },
284
284
  "devDependencies": {
285
- "@aws-amplify/graphql-transformer-test-utils": "1.0.2-async-lambda.0",
285
+ "@aws-amplify/graphql-transformer-test-utils": "1.0.1",
286
286
  "@types/fs-extra": "^8.0.1",
287
287
  "@types/node": "^18.0.0",
288
288
  "aws-cdk-lib": "2.152.0",
@@ -353,5 +353,5 @@
353
353
  "printBasicPrototype": true
354
354
  }
355
355
  },
356
- "gitHead": "6523549821213b017c48fc99860e76689a28b7d9"
356
+ "gitHead": "b3f51445b00db65e180dc9f89b98a4a56c669f2f"
357
357
  }
@@ -1,5 +1,6 @@
1
1
  import { Construct } from 'constructs';
2
2
  import {
3
+ AuthorizationType,
3
4
  CfnGraphQLApi,
4
5
  CfnGraphQLSchema,
5
6
  CfnApiKey,
@@ -7,10 +8,12 @@ import {
7
8
  CfnFunctionConfiguration,
8
9
  CfnDataSource,
9
10
  GraphqlApi,
11
+ GraphqlApiAttributes,
12
+ Visibility,
10
13
  } from 'aws-cdk-lib/aws-appsync';
11
14
  import { CfnTable, Table, ITable } from 'aws-cdk-lib/aws-dynamodb';
12
15
  import { CfnRole, Role } from 'aws-cdk-lib/aws-iam';
13
- import { CfnResource, NestedStack } from 'aws-cdk-lib';
16
+ import { CfnResource, isResolvableObject, NestedStack } from 'aws-cdk-lib';
14
17
  import { getResourceName } from '@aws-amplify/graphql-transformer-core';
15
18
  import { CfnFunction, Function as LambdaFunction } from 'aws-cdk-lib/aws-lambda';
16
19
  import { AmplifyGraphqlApiResources, FunctionSlot } from '../types';
@@ -24,9 +27,10 @@ import { walkAndProcessNodes } from './construct-tree';
24
27
  * @param table table resource
25
28
  * @returns whether the resource is a ITable or not
26
29
  */
27
- function isITable(table: any): table is ITable {
30
+ const isITable = (table: any): table is ITable => {
28
31
  return 'env' in table && 'node' in table && 'stack' in table && 'tableArn' in table && 'tableName' in table;
29
- }
32
+ };
33
+
30
34
  /**
31
35
  * Everything below here is intended to help us gather the
32
36
  * output values and render out the L1 resources for access.
@@ -130,8 +134,10 @@ export const getGeneratedResources = (scope: Construct): AmplifyGraphqlApiResour
130
134
  scope.node.children.filter(NestedStack.isNestedStack).map((nestedStack: NestedStack) => [nestedStack.node.id, nestedStack]),
131
135
  );
132
136
 
137
+ const proxiedApiAttributes = graphqlApiAttributesFromCfnGraphQLApi(cfnGraphqlApi);
138
+
133
139
  return {
134
- graphqlApi: GraphqlApi.fromGraphqlApiAttributes(scope, 'L2GraphqlApi', { graphqlApiId: cfnGraphqlApi.attrApiId }),
140
+ graphqlApi: GraphqlApi.fromGraphqlApiAttributes(scope, 'L2GraphqlApi', proxiedApiAttributes),
135
141
  tables,
136
142
  roles,
137
143
  functions,
@@ -152,6 +158,83 @@ export const getGeneratedResources = (scope: Construct): AmplifyGraphqlApiResour
152
158
  };
153
159
  };
154
160
 
161
+ /**
162
+ * Creates a set of L2 {@link GraphqlApiAttributes} from a CfnGraphqlApi L1 construct. Allows for getGeneratedResources to easily pass
163
+ * attributes of the CfnGraphqlApi to the `resources` member. Without this the `resources.graphqlApi` member has no properties except for
164
+ * the API ID.
165
+ */
166
+ const graphqlApiAttributesFromCfnGraphQLApi = (cfnGraphqlApi: CfnGraphQLApi): GraphqlApiAttributes => {
167
+ const visiblityStruct: { visibility?: Visibility } = {};
168
+ if (typeof cfnGraphqlApi.visibility === 'string') {
169
+ switch (cfnGraphqlApi.visibility) {
170
+ case 'GLOBAL':
171
+ visiblityStruct.visibility = Visibility.GLOBAL;
172
+ break;
173
+ case 'PRIVATE':
174
+ visiblityStruct.visibility = Visibility.PRIVATE;
175
+ break;
176
+ default:
177
+ console.warn(`Unsupported AppSync API Visibility setting: ${cfnGraphqlApi.visibility}`);
178
+ }
179
+ }
180
+
181
+ const proxiedApiAttributes: GraphqlApiAttributes = {
182
+ graphqlApiId: cfnGraphqlApi.attrApiId,
183
+ graphqlApiArn: cfnGraphqlApi.attrArn,
184
+ graphQLEndpointArn: cfnGraphqlApi.attrGraphQlEndpointArn,
185
+ ...visiblityStruct,
186
+ modes: authenticationTypesFromCfnGraphQLApi(cfnGraphqlApi),
187
+ };
188
+
189
+ return proxiedApiAttributes;
190
+ };
191
+
192
+ const authenticationTypesFromCfnGraphQLApi = (cfnGraphqlApi: CfnGraphQLApi): AuthorizationType[] => {
193
+ const additionalAuthenticationProviders = cfnGraphqlApi.additionalAuthenticationProviders;
194
+ if (!additionalAuthenticationProviders) {
195
+ return [];
196
+ }
197
+
198
+ // If this is a deploy-time value rather than an array, we can't convert accurately.
199
+ if (isResolvableObject(additionalAuthenticationProviders)) {
200
+ return [];
201
+ }
202
+
203
+ const unfilteredAuthorizationTypes: (AuthorizationType | undefined)[] = additionalAuthenticationProviders
204
+ .filter(
205
+ (additionalAuthProvider): additionalAuthProvider is CfnGraphQLApi.AdditionalAuthenticationProviderProperty =>
206
+ !isResolvableObject(additionalAuthProvider),
207
+ )
208
+ .map((provider) => provider.authenticationType)
209
+ .map(l2AuthorizationTypeFromL1AuthenticationProvider);
210
+
211
+ const authorizationTypes = unfilteredAuthorizationTypes.filter((type): type is AuthorizationType => typeof type !== 'undefined');
212
+
213
+ const defaultAuthorizationType = l2AuthorizationTypeFromL1AuthenticationProvider(cfnGraphqlApi.authenticationType);
214
+ if (defaultAuthorizationType) {
215
+ authorizationTypes.push(defaultAuthorizationType);
216
+ }
217
+ return authorizationTypes;
218
+ };
219
+
220
+ const l2AuthorizationTypeFromL1AuthenticationProvider = (authenticationType: string): AuthorizationType | undefined => {
221
+ switch (authenticationType) {
222
+ case 'API_KEY':
223
+ return AuthorizationType.API_KEY;
224
+ case 'AWS_IAM':
225
+ return AuthorizationType.IAM;
226
+ case 'OPENID_CONNECT':
227
+ return AuthorizationType.OIDC;
228
+ case 'AMAZON_COGNITO_USER_POOLS':
229
+ return AuthorizationType.USER_POOL;
230
+ case 'AWS_LAMBDA':
231
+ return AuthorizationType.LAMBDA;
232
+ default:
233
+ console.warn(`Unrecognized Authentication type ${authenticationType}`);
234
+ return undefined;
235
+ }
236
+ };
237
+
155
238
  /**
156
239
  * Get the function slots generated by the Graphql transform operation, adhering to the FunctionSlot interface.
157
240
  * @param generatedResolvers the resolvers generated by the transformer to spit back out.
@@ -1,201 +0,0 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by
13
- the copyright owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all
16
- other entities that control, are controlled by, or are under common
17
- control with that entity. For the purposes of this definition,
18
- "control" means (i) the power, direct or indirect, to cause the
19
- direction or management of such entity, whether by contract or
20
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
- outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
- "You" (or "Your") shall mean an individual or Legal Entity
24
- exercising permissions granted by this License.
25
-
26
- "Source" form shall mean the preferred form for making modifications,
27
- including but not limited to software source code, documentation
28
- source, and configuration files.
29
-
30
- "Object" form shall mean any form resulting from mechanical
31
- transformation or translation of a Source form, including but
32
- not limited to compiled object code, generated documentation,
33
- and conversions to other media types.
34
-
35
- "Work" shall mean the work of authorship, whether in Source or
36
- Object form, made available under the License, as indicated by a
37
- copyright notice that is included in or attached to the work
38
- (an example is provided in the Appendix below).
39
-
40
- "Derivative Works" shall mean any work, whether in Source or Object
41
- form, that is based on (or derived from) the Work and for which the
42
- editorial revisions, annotations, elaborations, or other modifications
43
- represent, as a whole, an original work of authorship. For the purposes
44
- of this License, Derivative Works shall not include works that remain
45
- separable from, or merely link (or bind by name) to the interfaces of,
46
- the Work and Derivative Works thereof.
47
-
48
- "Contribution" shall mean any work of authorship, including
49
- the original version of the Work and any modifications or additions
50
- to that Work or Derivative Works thereof, that is intentionally
51
- submitted to Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
54
- means any form of electronic, verbal, or written communication sent
55
- to the Licensor or its representatives, including but not limited to
56
- communication on electronic mailing lists, source code control systems,
57
- and issue tracking systems that are managed by, or on behalf of, the
58
- Licensor for the purpose of discussing and improving the Work, but
59
- excluding communication that is conspicuously marked or otherwise
60
- designated in writing by the copyright owner as "Not a Contribution."
61
-
62
- "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by Licensor and
64
- subsequently incorporated within the Work.
65
-
66
- 2. Grant of Copyright License. Subject to the terms and conditions of
67
- this License, each Contributor hereby grants to You a perpetual,
68
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
- copyright license to reproduce, prepare Derivative Works of,
70
- publicly display, publicly perform, sublicense, and distribute the
71
- Work and such Derivative Works in Source or Object form.
72
-
73
- 3. Grant of Patent License. Subject to the terms and conditions of
74
- this License, each Contributor hereby grants to You a perpetual,
75
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
- (except as stated in this section) patent license to make, have made,
77
- use, offer to sell, sell, import, and otherwise transfer the Work,
78
- where such license applies only to those patent claims licensable
79
- by such Contributor that are necessarily infringed by their
80
- Contribution(s) alone or by combination of their Contribution(s)
81
- with the Work to which such Contribution(s) was submitted. If You
82
- institute patent litigation against any entity (including a
83
- cross-claim or counterclaim in a lawsuit) alleging that the Work
84
- or a Contribution incorporated within the Work constitutes direct
85
- or contributory patent infringement, then any patent licenses
86
- granted to You under this License for that Work shall terminate
87
- as of the date such litigation is filed.
88
-
89
- 4. Redistribution. You may reproduce and distribute copies of the
90
- Work or Derivative Works thereof in any medium, with or without
91
- modifications, and in Source or Object form, provided that You
92
- meet the following conditions:
93
-
94
- (a) You must give any other recipients of the Work or
95
- Derivative Works a copy of this License; and
96
-
97
- (b) You must cause any modified files to carry prominent notices
98
- stating that You changed the files; and
99
-
100
- (c) You must retain, in the Source form of any Derivative Works
101
- that You distribute, all copyright, patent, trademark, and
102
- attribution notices from the Source form of the Work,
103
- excluding those notices that do not pertain to any part of
104
- the Derivative Works; and
105
-
106
- (d) If the Work includes a "NOTICE" text file as part of its
107
- distribution, then any Derivative Works that You distribute must
108
- include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding those notices that do not
110
- pertain to any part of the Derivative Works, in at least one
111
- of the following places: within a NOTICE text file distributed
112
- as part of the Derivative Works; within the Source form or
113
- documentation, if provided along with the Derivative Works; or,
114
- within a display generated by the Derivative Works, if and
115
- wherever such third-party notices normally appear. The contents
116
- of the NOTICE file are for informational purposes only and
117
- do not modify the License. You may add Your own attribution
118
- notices within Derivative Works that You distribute, alongside
119
- or as an addendum to the NOTICE text from the Work, provided
120
- that such additional attribution notices cannot be construed
121
- as modifying the License.
122
-
123
- You may add Your own copyright statement to Your modifications and
124
- may provide additional or different license terms and conditions
125
- for use, reproduction, or distribution of Your modifications, or
126
- for any such Derivative Works as a whole, provided Your use,
127
- reproduction, and distribution of the Work otherwise complies with
128
- the conditions stated in this License.
129
-
130
- 5. Submission of Contributions. Unless You explicitly state otherwise,
131
- any Contribution intentionally submitted for inclusion in the Work
132
- by You to the Licensor shall be under the terms and conditions of
133
- this License, without any additional terms or conditions.
134
- Notwithstanding the above, nothing herein shall supersede or modify
135
- the terms of any separate license agreement you may have executed
136
- with Licensor regarding such Contributions.
137
-
138
- 6. Trademarks. This License does not grant permission to use the trade
139
- names, trademarks, service marks, or product names of the Licensor,
140
- except as required for reasonable and customary use in describing the
141
- origin of the Work and reproducing the content of the NOTICE file.
142
-
143
- 7. Disclaimer of Warranty. Unless required by applicable law or
144
- agreed to in writing, Licensor provides the Work (and each
145
- Contributor provides its Contributions) on an "AS IS" BASIS,
146
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
- implied, including, without limitation, any warranties or conditions
148
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
- PARTICULAR PURPOSE. You are solely responsible for determining the
150
- appropriateness of using or redistributing the Work and assume any
151
- risks associated with Your exercise of permissions under this License.
152
-
153
- 8. Limitation of Liability. In no event and under no legal theory,
154
- whether in tort (including negligence), contract, or otherwise,
155
- unless required by applicable law (such as deliberate and grossly
156
- negligent acts) or agreed to in writing, shall any Contributor be
157
- liable to You for damages, including any direct, indirect, special,
158
- incidental, or consequential damages of any character arising as a
159
- result of this License or out of the use or inability to use the
160
- Work (including but not limited to damages for loss of goodwill,
161
- work stoppage, computer failure or malfunction, or any and all
162
- other commercial damages or losses), even if such Contributor
163
- has been advised of the possibility of such damages.
164
-
165
- 9. Accepting Warranty or Additional Liability. While redistributing
166
- the Work or Derivative Works thereof, You may choose to offer,
167
- and charge a fee for, acceptance of support, warranty, indemnity,
168
- or other liability obligations and/or rights consistent with this
169
- License. However, in accepting such obligations, You may act only
170
- on Your own behalf and on Your sole responsibility, not on behalf
171
- of any other Contributor, and only if You agree to indemnify,
172
- defend, and hold each Contributor harmless for any liability
173
- incurred by, or claims asserted against, such Contributor by reason
174
- of your accepting any such warranty or additional liability.
175
-
176
- END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "{}"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright 2017 - 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- http://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.