@aws-amplify/graphql-model-transformer 1.5.0-rds.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/API.md +15 -15
  2. package/CHANGELOG.md +2 -7
  3. package/lib/graphql-types/mutation.d.ts.map +1 -1
  4. package/lib/graphql-types/mutation.js +2 -9
  5. package/lib/graphql-types/mutation.js.map +1 -1
  6. package/lib/rds-lambda.zip +0 -0
  7. package/lib/rds-notification-lambda.zip +0 -0
  8. package/lib/rds-patching-lambda.zip +0 -0
  9. package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts +5 -6
  10. package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
  11. package/lib/resolvers/generators/dynamodb-vtl-generator.js +5 -5
  12. package/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
  13. package/lib/resolvers/generators/rds-vtl-generator.d.ts +5 -6
  14. package/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  15. package/lib/resolvers/generators/rds-vtl-generator.js +10 -10
  16. package/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  17. package/lib/resolvers/generators/vtl-generator.d.ts +5 -6
  18. package/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
  19. package/lib/resolvers/rds/mutation.d.ts +3 -4
  20. package/lib/resolvers/rds/mutation.d.ts.map +1 -1
  21. package/lib/resolvers/rds/mutation.js +3 -7
  22. package/lib/resolvers/rds/mutation.js.map +1 -1
  23. package/lib/resolvers/rds/query.d.ts +1 -2
  24. package/lib/resolvers/rds/query.d.ts.map +1 -1
  25. package/lib/resolvers/rds/query.js +1 -3
  26. package/lib/resolvers/rds/query.js.map +1 -1
  27. package/lib/resolvers/rds/resolver.d.ts +7 -11
  28. package/lib/resolvers/rds/resolver.d.ts.map +1 -1
  29. package/lib/resolvers/rds/resolver.js +39 -50
  30. package/lib/resolvers/rds/resolver.js.map +1 -1
  31. package/lib/resources/dynamo-model-resource-generator.d.ts +2 -2
  32. package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
  33. package/lib/resources/dynamo-model-resource-generator.js +48 -43
  34. package/lib/resources/dynamo-model-resource-generator.js.map +1 -1
  35. package/lib/resources/model-resource-generator.js +8 -8
  36. package/lib/resources/model-resource-generator.js.map +1 -1
  37. package/lib/resources/rds-model-resource-generator.js +13 -13
  38. package/package.json +6 -5
  39. package/publish-notification-lambda/node_modules/.package-lock.json +3 -3
  40. package/publish-notification-lambda/node_modules/@types/node/README.md +1 -1
  41. package/publish-notification-lambda/node_modules/@types/node/package.json +2 -2
  42. package/publish-notification-lambda/package-lock.json +3 -3
  43. package/rds-lambda/handler.ts +1 -2
  44. package/rds-lambda/node_modules/.package-lock.json +6 -6
  45. package/rds-lambda/node_modules/@types/node/README.md +1 -1
  46. package/rds-lambda/node_modules/@types/node/package.json +2 -2
  47. package/rds-lambda/node_modules/electron-to-chromium/full-chromium-versions.json +1 -1
  48. package/rds-lambda/node_modules/electron-to-chromium/full-versions.json +1 -1
  49. package/rds-lambda/node_modules/electron-to-chromium/package.json +1 -1
  50. package/rds-lambda/package-lock.json +6 -6
  51. package/rds-patching-lambda/node_modules/.package-lock.json +3 -3
  52. package/rds-patching-lambda/node_modules/@types/node/README.md +1 -1
  53. package/rds-patching-lambda/node_modules/@types/node/package.json +2 -2
  54. package/rds-patching-lambda/package-lock.json +3 -3
  55. package/src/__tests__/__snapshots__/model-transformer.test.ts.snap +0 -688
  56. package/src/__tests__/model-directive-arguments.test.ts +23 -28
  57. package/src/__tests__/model-transformer.test.ts +137 -216
  58. package/src/graphql-types/mutation.ts +3 -11
  59. package/src/resolvers/generators/dynamodb-vtl-generator.ts +5 -7
  60. package/src/resolvers/generators/rds-vtl-generator.ts +10 -12
  61. package/src/resolvers/generators/vtl-generator.ts +5 -6
  62. package/src/resolvers/rds/mutation.ts +3 -18
  63. package/src/resolvers/rds/query.ts +1 -9
  64. package/src/resolvers/rds/resolver.ts +45 -62
  65. package/src/resources/dynamo-model-resource-generator.ts +50 -47
  66. package/src/resources/model-resource-generator.ts +8 -8
  67. package/src/resources/rds-model-resource-generator.ts +13 -13
  68. package/tsconfig.tsbuildinfo +1 -1
@@ -2,11 +2,12 @@ import * as cdk from 'aws-cdk-lib';
2
2
  import { TransformerContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
3
3
  import { ModelResourceIDs, ResourceConstants, SyncResourceIDs } from 'graphql-transformer-common';
4
4
  import { ObjectTypeDefinitionNode } from 'graphql';
5
- import { SyncUtils, TransformerNestedStack } from '@aws-amplify/graphql-transformer-core';
5
+ import { SyncUtils, setResourceName } from '@aws-amplify/graphql-transformer-core';
6
6
  import { AttributeType, CfnTable, StreamViewType, Table, TableEncryption } from 'aws-cdk-lib/aws-dynamodb';
7
7
  import { CfnDataSource } from 'aws-cdk-lib/aws-appsync';
8
8
  import * as iam from 'aws-cdk-lib/aws-iam';
9
9
  import { CfnRole } from 'aws-cdk-lib/aws-iam';
10
+ import { Construct } from 'constructs';
10
11
  import { DynamoDBModelVTLGenerator, ModelVTLGenerator } from '../resolvers';
11
12
  import { ModelResourceGenerator } from './model-resource-generator';
12
13
 
@@ -24,28 +25,29 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
24
25
 
25
26
  if (this.isProvisioned()) {
26
27
  // add model related-parameters to the root stack
27
- ctx.stackManager.addParameter(ResourceConstants.PARAMETERS.DynamoDBModelTableReadIOPS, {
28
+ const rootStack = cdk.Stack.of(ctx.stackManager.scope);
29
+ new cdk.CfnParameter(rootStack, ResourceConstants.PARAMETERS.DynamoDBModelTableReadIOPS, {
28
30
  description: 'The number of read IOPS the table should support.',
29
31
  type: 'Number',
30
32
  default: 5,
31
33
  });
32
- ctx.stackManager.addParameter(ResourceConstants.PARAMETERS.DynamoDBModelTableWriteIOPS, {
34
+ new cdk.CfnParameter(rootStack, ResourceConstants.PARAMETERS.DynamoDBModelTableWriteIOPS, {
33
35
  description: 'The number of write IOPS the table should support.',
34
36
  type: 'Number',
35
37
  default: 5,
36
38
  });
37
- ctx.stackManager.addParameter(ResourceConstants.PARAMETERS.DynamoDBBillingMode, {
39
+ new cdk.CfnParameter(rootStack, ResourceConstants.PARAMETERS.DynamoDBBillingMode, {
38
40
  description: 'Configure @model types to create DynamoDB tables with PAY_PER_REQUEST or PROVISIONED billing modes.',
39
41
  default: 'PAY_PER_REQUEST',
40
42
  allowedValues: ['PAY_PER_REQUEST', 'PROVISIONED'],
41
43
  });
42
- ctx.stackManager.addParameter(ResourceConstants.PARAMETERS.DynamoDBEnablePointInTimeRecovery, {
44
+ new cdk.CfnParameter(rootStack, ResourceConstants.PARAMETERS.DynamoDBEnablePointInTimeRecovery, {
43
45
  description: 'Whether to enable Point in Time Recovery on the table.',
44
46
  type: 'String',
45
47
  default: 'false',
46
48
  allowedValues: ['true', 'false'],
47
49
  });
48
- ctx.stackManager.addParameter(ResourceConstants.PARAMETERS.DynamoDBEnableServerSideEncryption, {
50
+ new cdk.CfnParameter(rootStack, ResourceConstants.PARAMETERS.DynamoDBEnableServerSideEncryption, {
49
51
  description: 'Enable server side encryption powered by KMS.',
50
52
  type: 'String',
51
53
  default: 'true',
@@ -57,9 +59,9 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
57
59
  // This name is used by the mock functionality. Changing this can break mock.
58
60
  const tableBaseName = ctx.resourceHelper.getModelNameMapping(model!.name.value);
59
61
  const tableLogicalName = ModelResourceIDs.ModelTableResourceID(tableBaseName);
60
- const stack = ctx.stackManager.getStackFor(tableLogicalName, tableBaseName);
62
+ const scope = ctx.stackManager.getScopeFor(tableLogicalName, tableBaseName);
61
63
 
62
- this.createModelTable(stack, model, ctx);
64
+ this.createModelTable(scope, model, ctx);
63
65
  });
64
66
 
65
67
  this.generateResolvers(ctx);
@@ -70,71 +72,68 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
70
72
  return new DynamoDBModelVTLGenerator();
71
73
  }
72
74
 
73
- private createModelTable(stack: cdk.Stack, def: ObjectTypeDefinitionNode, context: TransformerContextProvider): void {
74
- const tableLogicalName = ModelResourceIDs.ModelTableResourceID(def!.name.value);
75
- const tableName = context.resourceHelper.generateTableName(def!.name.value);
75
+ private createModelTable(scope: Construct, def: ObjectTypeDefinitionNode, context: TransformerContextProvider): void {
76
+ const modelName = def!.name.value;
77
+ const tableLogicalName = ModelResourceIDs.ModelTableResourceID(modelName);
78
+ const tableName = context.resourceHelper.generateTableName(modelName);
76
79
 
77
80
  // Add parameters.
78
- const env = context.stackManager.getParameter(ResourceConstants.PARAMETERS.Env) as cdk.CfnParameter;
79
- const readIops = new cdk.CfnParameter(stack, ResourceConstants.PARAMETERS.DynamoDBModelTableReadIOPS, {
81
+ const readIops = new cdk.CfnParameter(scope, ResourceConstants.PARAMETERS.DynamoDBModelTableReadIOPS, {
80
82
  description: 'The number of read IOPS the table should support.',
81
83
  type: 'Number',
82
84
  default: 5,
83
85
  });
84
- const writeIops = new cdk.CfnParameter(stack, ResourceConstants.PARAMETERS.DynamoDBModelTableWriteIOPS, {
86
+ const writeIops = new cdk.CfnParameter(scope, ResourceConstants.PARAMETERS.DynamoDBModelTableWriteIOPS, {
85
87
  description: 'The number of write IOPS the table should support.',
86
88
  type: 'Number',
87
89
  default: 5,
88
90
  });
89
- const billingMode = new cdk.CfnParameter(stack, ResourceConstants.PARAMETERS.DynamoDBBillingMode, {
91
+ const billingMode = new cdk.CfnParameter(scope, ResourceConstants.PARAMETERS.DynamoDBBillingMode, {
90
92
  description: 'Configure @model types to create DynamoDB tables with PAY_PER_REQUEST or PROVISIONED billing modes.',
91
93
  type: 'String',
92
94
  default: 'PAY_PER_REQUEST',
93
95
  allowedValues: ['PAY_PER_REQUEST', 'PROVISIONED'],
94
96
  });
95
- const pointInTimeRecovery = new cdk.CfnParameter(stack, ResourceConstants.PARAMETERS.DynamoDBEnablePointInTimeRecovery, {
97
+ const pointInTimeRecovery = new cdk.CfnParameter(scope, ResourceConstants.PARAMETERS.DynamoDBEnablePointInTimeRecovery, {
96
98
  description: 'Whether to enable Point in Time Recovery on the table.',
97
99
  type: 'String',
98
100
  default: 'false',
99
101
  allowedValues: ['true', 'false'],
100
102
  });
101
- const enableSSE = new cdk.CfnParameter(stack, ResourceConstants.PARAMETERS.DynamoDBEnableServerSideEncryption, {
103
+ const enableSSE = new cdk.CfnParameter(scope, ResourceConstants.PARAMETERS.DynamoDBEnableServerSideEncryption, {
102
104
  description: 'Enable server side encryption powered by KMS.',
103
105
  type: 'String',
104
106
  default: 'true',
105
107
  allowedValues: ['true', 'false'],
106
108
  });
107
109
  // add the connection between the root and nested stack so the values can be passed down
108
- (stack as TransformerNestedStack).setParameter(readIops.node.id, cdk.Fn.ref(ResourceConstants.PARAMETERS.DynamoDBModelTableReadIOPS));
109
- (stack as TransformerNestedStack).setParameter(writeIops.node.id, cdk.Fn.ref(ResourceConstants.PARAMETERS.DynamoDBModelTableWriteIOPS));
110
- (stack as TransformerNestedStack).setParameter(billingMode.node.id, cdk.Fn.ref(ResourceConstants.PARAMETERS.DynamoDBBillingMode));
111
- (stack as TransformerNestedStack).setParameter(
110
+ (scope as cdk.NestedStack).setParameter(readIops.node.id, cdk.Fn.ref(ResourceConstants.PARAMETERS.DynamoDBModelTableReadIOPS));
111
+ (scope as cdk.NestedStack).setParameter(writeIops.node.id, cdk.Fn.ref(ResourceConstants.PARAMETERS.DynamoDBModelTableWriteIOPS));
112
+ (scope as cdk.NestedStack).setParameter(billingMode.node.id, cdk.Fn.ref(ResourceConstants.PARAMETERS.DynamoDBBillingMode));
113
+ (scope as cdk.NestedStack).setParameter(
112
114
  pointInTimeRecovery.node.id,
113
115
  cdk.Fn.ref(ResourceConstants.PARAMETERS.DynamoDBEnablePointInTimeRecovery),
114
116
  );
115
- (stack as TransformerNestedStack).setParameter(
116
- enableSSE.node.id,
117
- cdk.Fn.ref(ResourceConstants.PARAMETERS.DynamoDBEnableServerSideEncryption),
118
- );
117
+ (scope as cdk.NestedStack).setParameter(enableSSE.node.id, cdk.Fn.ref(ResourceConstants.PARAMETERS.DynamoDBEnableServerSideEncryption));
119
118
 
120
119
  // Add conditions.
121
- new cdk.CfnCondition(stack, ResourceConstants.CONDITIONS.HasEnvironmentParameter, {
122
- expression: cdk.Fn.conditionNot(cdk.Fn.conditionEquals(env, ResourceConstants.NONE)),
120
+ new cdk.CfnCondition(scope, ResourceConstants.CONDITIONS.HasEnvironmentParameter, {
121
+ expression: cdk.Fn.conditionNot(cdk.Fn.conditionEquals(context.synthParameters.amplifyEnvironmentName, ResourceConstants.NONE)),
123
122
  });
124
- const useSSE = new cdk.CfnCondition(stack, ResourceConstants.CONDITIONS.ShouldUseServerSideEncryption, {
123
+ const useSSE = new cdk.CfnCondition(scope, ResourceConstants.CONDITIONS.ShouldUseServerSideEncryption, {
125
124
  expression: cdk.Fn.conditionEquals(enableSSE, 'true'),
126
125
  });
127
- const usePayPerRequestBilling = new cdk.CfnCondition(stack, ResourceConstants.CONDITIONS.ShouldUsePayPerRequestBilling, {
126
+ const usePayPerRequestBilling = new cdk.CfnCondition(scope, ResourceConstants.CONDITIONS.ShouldUsePayPerRequestBilling, {
128
127
  expression: cdk.Fn.conditionEquals(billingMode, 'PAY_PER_REQUEST'),
129
128
  });
130
- const usePointInTimeRecovery = new cdk.CfnCondition(stack, ResourceConstants.CONDITIONS.ShouldUsePointInTimeRecovery, {
129
+ const usePointInTimeRecovery = new cdk.CfnCondition(scope, ResourceConstants.CONDITIONS.ShouldUsePointInTimeRecovery, {
131
130
  expression: cdk.Fn.conditionEquals(pointInTimeRecovery, 'true'),
132
131
  });
133
132
 
134
133
  const removalPolicy = this.options.EnableDeletionProtection ? cdk.RemovalPolicy.RETAIN : cdk.RemovalPolicy.DESTROY;
135
134
 
136
135
  // Expose a way in context to allow proper resource naming
137
- const table = new Table(stack, tableLogicalName, {
136
+ const table = new Table(scope, tableLogicalName, {
138
137
  tableName,
139
138
  partitionKey: {
140
139
  name: 'id',
@@ -146,6 +145,7 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
146
145
  ...(context.isProjectUsingDataStore() ? { timeToLiveAttribute: '_ttl' } : undefined),
147
146
  });
148
147
  const cfnTable = table.node.defaultChild as CfnTable;
148
+ setResourceName(table, { name: modelName, setOnDefaultChild: true });
149
149
 
150
150
  cfnTable.provisionedThroughput = cdk.Fn.conditionIf(usePayPerRequestBilling.logicalId, cdk.Fn.ref('AWS::NoValue'), {
151
151
  ReadCapacityUnits: readIops,
@@ -162,29 +162,31 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
162
162
  };
163
163
 
164
164
  const streamArnOutputId = `GetAtt${ModelResourceIDs.ModelTableStreamArn(def!.name.value)}`;
165
- new cdk.CfnOutput(stack, streamArnOutputId, {
166
- value: cdk.Fn.getAtt(tableLogicalName, 'StreamArn').toString(),
167
- description: 'Your DynamoDB table StreamArn.',
168
- exportName: cdk.Fn.join(':', [context.api.apiId, 'GetAtt', tableLogicalName, 'StreamArn']),
169
- });
165
+ if (table.tableStreamArn) {
166
+ new cdk.CfnOutput(cdk.Stack.of(scope), streamArnOutputId, {
167
+ value: table.tableStreamArn,
168
+ description: 'Your DynamoDB table StreamArn.',
169
+ exportName: cdk.Fn.join(':', [context.api.apiId, 'GetAtt', tableLogicalName, 'StreamArn']),
170
+ });
171
+ }
170
172
 
171
173
  const tableNameOutputId = `GetAtt${tableLogicalName}Name`;
172
- new cdk.CfnOutput(stack, tableNameOutputId, {
173
- value: cdk.Fn.ref(tableLogicalName),
174
+ new cdk.CfnOutput(cdk.Stack.of(scope), tableNameOutputId, {
175
+ value: table.tableName,
174
176
  description: 'Your DynamoDB table name.',
175
177
  exportName: cdk.Fn.join(':', [context.api.apiId, 'GetAtt', tableLogicalName, 'Name']),
176
178
  });
177
179
 
178
- const role = this.createIAMRole(context, def, stack, tableName);
180
+ const role = this.createIAMRole(context, def, scope, tableName);
179
181
  const tableDataSourceLogicalName = `${def!.name.value}Table`;
180
- this.createModelTableDataSource(def, context, table, stack, role, tableDataSourceLogicalName);
182
+ this.createModelTableDataSource(def, context, table, scope, role, tableDataSourceLogicalName);
181
183
  }
182
184
 
183
185
  private createModelTableDataSource(
184
186
  def: ObjectTypeDefinitionNode,
185
187
  context: TransformerContextProvider,
186
188
  table: Table,
187
- stack: cdk.Stack,
189
+ scope: Construct,
188
190
  role: iam.Role,
189
191
  dataSourceLogicalName: string,
190
192
  ): void {
@@ -193,7 +195,7 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
193
195
  datasourceRoleLogicalID,
194
196
  table,
195
197
  { name: dataSourceLogicalName, serviceRole: role },
196
- stack,
198
+ scope,
197
199
  );
198
200
 
199
201
  const cfnDataSource = dataSource.node.defaultChild as CfnDataSource;
@@ -211,7 +213,7 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
211
213
  }
212
214
 
213
215
  const datasourceOutputId = `GetAtt${datasourceRoleLogicalID}Name`;
214
- new cdk.CfnOutput(stack, datasourceOutputId, {
216
+ new cdk.CfnOutput(cdk.Stack.of(scope), datasourceOutputId, {
215
217
  value: dataSource.ds.attrName,
216
218
  description: 'Your model DataSource name.',
217
219
  exportName: cdk.Fn.join(':', [context.api.apiId, 'GetAtt', datasourceRoleLogicalID, 'Name']),
@@ -225,16 +227,17 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
225
227
  /**
226
228
  * createIAMRole
227
229
  */
228
- createIAMRole = (context: TransformerContextProvider, def: ObjectTypeDefinitionNode, stack: cdk.Stack, tableName: string): iam.Role => {
230
+ createIAMRole = (context: TransformerContextProvider, def: ObjectTypeDefinitionNode, scope: Construct, tableName: string): iam.Role => {
229
231
  const roleName = context.resourceHelper.generateIAMRoleName(ModelResourceIDs.ModelTableIAMRoleID(def!.name.value));
230
- const role = new iam.Role(stack, ModelResourceIDs.ModelTableIAMRoleID(def!.name.value), {
232
+ const role = new iam.Role(scope, ModelResourceIDs.ModelTableIAMRoleID(def!.name.value), {
231
233
  roleName,
232
234
  assumedBy: new iam.ServicePrincipal('appsync.amazonaws.com'),
233
235
  });
236
+ setResourceName(role, { name: ModelResourceIDs.ModelTableIAMRoleID(def!.name.value), setOnDefaultChild: true });
234
237
 
235
238
  const amplifyDataStoreTableName = context.resourceHelper.generateTableName(SyncResourceIDs.syncTableName);
236
239
  role.attachInlinePolicy(
237
- new iam.Policy(stack, 'DynamoDBAccess', {
240
+ new iam.Policy(scope, 'DynamoDBAccess', {
238
241
  statements: [
239
242
  new iam.PolicyStatement({
240
243
  effect: iam.Effect.ALLOW,
@@ -278,7 +281,7 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
278
281
  const syncConfig = SyncUtils.getSyncConfig(context, def!.name.value);
279
282
  if (syncConfig && SyncUtils.isLambdaSyncConfig(syncConfig)) {
280
283
  role.attachInlinePolicy(
281
- SyncUtils.createSyncLambdaIAMPolicy(context, stack, syncConfig.LambdaConflictHandler.name, syncConfig.LambdaConflictHandler.region),
284
+ SyncUtils.createSyncLambdaIAMPolicy(context, scope, syncConfig.LambdaConflictHandler.name, syncConfig.LambdaConflictHandler.region),
282
285
  );
283
286
  }
284
287
 
@@ -132,7 +132,7 @@ export abstract class ModelResourceGenerator {
132
132
  `${query.typeName}.${query.fieldName}.{slotName}.{slotIndex}.req.vtl`,
133
133
  ),
134
134
  );
135
- resolver.mapToStack(context.stackManager.getStackFor(query.resolverLogicalId, def!.name.value));
135
+ resolver.setScope(context.stackManager.getScopeFor(query.resolverLogicalId, def!.name.value));
136
136
  context.resolvers.addResolver(query.typeName, query.fieldName, resolver);
137
137
  });
138
138
 
@@ -166,7 +166,7 @@ export abstract class ModelResourceGenerator {
166
166
  `${mutation.typeName}.${mutation.fieldName}.{slotName}.{slotIndex}.req.vtl`,
167
167
  ),
168
168
  );
169
- resolver.mapToStack(context.stackManager.getStackFor(mutation.resolverLogicalId, def!.name.value));
169
+ resolver.setScope(context.stackManager.getScopeFor(mutation.resolverLogicalId, def!.name.value));
170
170
  context.resolvers.addResolver(mutation.typeName, mutation.fieldName, resolver);
171
171
  });
172
172
 
@@ -213,7 +213,7 @@ export abstract class ModelResourceGenerator {
213
213
  ),
214
214
  );
215
215
  }
216
- resolver.mapToStack(context.stackManager.getStackFor(subscription.resolverLogicalId, def!.name.value));
216
+ resolver.setScope(context.stackManager.getScopeFor(subscription.resolverLogicalId, def!.name.value));
217
217
  context.resolvers.addResolver(subscription.typeName, subscription.fieldName, resolver);
218
218
  });
219
219
  }
@@ -252,7 +252,7 @@ export abstract class ModelResourceGenerator {
252
252
  resolverLogicalId,
253
253
  dataSource,
254
254
  MappingTemplate.s3MappingTemplateFromString(
255
- vtlGenerator.generateGetRequestTemplate(requestConfig, ctx),
255
+ vtlGenerator.generateGetRequestTemplate(requestConfig),
256
256
  `${typeName}.${fieldName}.req.vtl`,
257
257
  ),
258
258
  MappingTemplate.s3MappingTemplateFromString(
@@ -292,7 +292,7 @@ export abstract class ModelResourceGenerator {
292
292
  resolverLogicalId,
293
293
  dataSource,
294
294
  MappingTemplate.s3MappingTemplateFromString(
295
- vtlGenerator.generateListRequestTemplate(requestConfig, ctx),
295
+ vtlGenerator.generateListRequestTemplate(requestConfig),
296
296
  `${typeName}.${fieldName}.req.vtl`,
297
297
  ),
298
298
  MappingTemplate.s3MappingTemplateFromString(
@@ -338,7 +338,7 @@ export abstract class ModelResourceGenerator {
338
338
  resolverLogicalId,
339
339
  dataSource,
340
340
  MappingTemplate.s3MappingTemplateFromString(
341
- vtlGenerator.generateCreateRequestTemplate(requestConfig, ctx),
341
+ vtlGenerator.generateCreateRequestTemplate(requestConfig),
342
342
  `${typeName}.${fieldName}.req.vtl`,
343
343
  ),
344
344
  MappingTemplate.s3MappingTemplateFromString(
@@ -400,7 +400,7 @@ export abstract class ModelResourceGenerator {
400
400
  resolverLogicalId,
401
401
  dataSource,
402
402
  MappingTemplate.s3MappingTemplateFromString(
403
- vtlGenerator.generateUpdateRequestTemplate(requestConfig, ctx),
403
+ vtlGenerator.generateUpdateRequestTemplate(requestConfig),
404
404
  `${typeName}.${fieldName}.req.vtl`,
405
405
  ),
406
406
  MappingTemplate.s3MappingTemplateFromString(
@@ -461,7 +461,7 @@ export abstract class ModelResourceGenerator {
461
461
  resolverLogicalId,
462
462
  dataSource,
463
463
  MappingTemplate.s3MappingTemplateFromString(
464
- vtlGenerator.generateDeleteRequestTemplate(requestConfig, ctx),
464
+ vtlGenerator.generateDeleteRequestTemplate(requestConfig),
465
465
  `${typeName}.${fieldName}.req.vtl`,
466
466
  ),
467
467
  MappingTemplate.s3MappingTemplateFromString(
@@ -37,17 +37,17 @@ export class RdsModelResourceGenerator extends ModelResourceGenerator {
37
37
  RDSLambdaDataSourceLogicalID,
38
38
  RDSPatchingSubscriptionLogicalID,
39
39
  } = ResourceConstants.RESOURCES;
40
- const lambdaRoleStack = context.stackManager.getStackFor(RDSLambdaIAMRoleLogicalID, RDS_STACK_NAME);
41
- const lambdaStack = context.stackManager.getStackFor(RDSLambdaLogicalID, RDS_STACK_NAME);
42
- setRDSLayerMappings(lambdaStack, context.rdsLayerMapping);
40
+ const lambdaRoleScope = context.stackManager.getScopeFor(RDSLambdaIAMRoleLogicalID, RDS_STACK_NAME);
41
+ const lambdaScope = context.stackManager.getScopeFor(RDSLambdaLogicalID, RDS_STACK_NAME);
42
+ setRDSLayerMappings(lambdaScope, context.rdsLayerMapping);
43
43
  const role = createRdsLambdaRole(
44
44
  context.resourceHelper.generateIAMRoleName(RDSLambdaIAMRoleLogicalID),
45
- lambdaRoleStack,
45
+ lambdaRoleScope,
46
46
  secretEntry as RDSConnectionSecrets,
47
47
  );
48
48
 
49
49
  const lambda = createRdsLambda(
50
- lambdaStack,
50
+ lambdaScope,
51
51
  context.api,
52
52
  role,
53
53
  {
@@ -60,22 +60,22 @@ export class RdsModelResourceGenerator extends ModelResourceGenerator {
60
60
  context.sqlLambdaVpcConfig,
61
61
  );
62
62
 
63
- const patchingLambdaRoleStack = context.stackManager.getStackFor(RDSPatchingLambdaIAMRoleLogicalID, RDS_STACK_NAME);
64
- const patchingLambdaStack = context.stackManager.getStackFor(RDSPatchingLambdaLogicalID, RDS_STACK_NAME);
63
+ const patchingLambdaRoleScope = context.stackManager.getScopeFor(RDSPatchingLambdaIAMRoleLogicalID, RDS_STACK_NAME);
64
+ const patchingLambdaScope = context.stackManager.getScopeFor(RDSPatchingLambdaLogicalID, RDS_STACK_NAME);
65
65
  const patchingLambdaRole = createRdsPatchingLambdaRole(
66
66
  context.resourceHelper.generateIAMRoleName(RDSPatchingLambdaIAMRoleLogicalID),
67
- patchingLambdaRoleStack,
67
+ patchingLambdaRoleScope,
68
68
  lambda.functionArn,
69
69
  );
70
70
 
71
71
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
72
- const patchingLambda = createRdsPatchingLambda(patchingLambdaStack, context.api, patchingLambdaRole, {
72
+ const patchingLambda = createRdsPatchingLambda(patchingLambdaScope, context.api, patchingLambdaRole, {
73
73
  LAMBDA_FUNCTION_ARN: lambda.functionArn,
74
74
  });
75
75
 
76
76
  // Add SNS subscription for patching notifications
77
- const patchingSubscriptionStack = context.stackManager.getStackFor(RDSPatchingSubscriptionLogicalID, RDS_STACK_NAME);
78
- const snsTopic = Topic.fromTopicArn(patchingSubscriptionStack, 'RDSPatchingTopic', RDS_PATCHING_SNS_TOPIC_ARN);
77
+ const patchingSubscriptionScope = context.stackManager.getScopeFor(RDSPatchingSubscriptionLogicalID, RDS_STACK_NAME);
78
+ const snsTopic = Topic.fromTopicArn(patchingSubscriptionScope, 'RDSPatchingTopic', RDS_PATCHING_SNS_TOPIC_ARN);
79
79
  const subscription = new LambdaSubscription(patchingLambda, {
80
80
  filterPolicy: {
81
81
  Region: SubscriptionFilter.stringFilter({
@@ -85,8 +85,8 @@ export class RdsModelResourceGenerator extends ModelResourceGenerator {
85
85
  });
86
86
  snsTopic.addSubscription(subscription);
87
87
 
88
- const lambdaDataSourceStack = context.stackManager.getStackFor(RDSLambdaDataSourceLogicalID, RDS_STACK_NAME);
89
- const rdsDatasource = context.api.host.addLambdaDataSource(`${RDSLambdaDataSourceLogicalID}`, lambda, {}, lambdaDataSourceStack);
88
+ const lambdaDataSourceScope = context.stackManager.getScopeFor(RDSLambdaDataSourceLogicalID, RDS_STACK_NAME);
89
+ const rdsDatasource = context.api.host.addLambdaDataSource(`${RDSLambdaDataSourceLogicalID}`, lambda, {}, lambdaDataSourceScope);
90
90
  this.models.forEach((model) => {
91
91
  context.dataSources.add(model, rdsDatasource);
92
92
  this.datasourceMap[model.name.value] = rdsDatasource;