@webiny/pulumi-aws 5.37.3-beta.0 → 5.37.3-beta.1

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 (57) hide show
  1. package/apps/admin/createAdminPulumiApp.js +1 -3
  2. package/apps/admin/index.js +1 -3
  3. package/apps/api/ApiApwScheduler.js +1 -3
  4. package/apps/api/ApiCloudfront.js +1 -3
  5. package/apps/api/ApiFileManager.js +1 -3
  6. package/apps/api/ApiGateway.js +1 -3
  7. package/apps/api/ApiGraphql.js +1 -3
  8. package/apps/api/ApiMigration.js +1 -3
  9. package/apps/api/ApiOutput.js +1 -3
  10. package/apps/api/ApiPageBuilder.js +1 -3
  11. package/apps/api/createApiPulumiApp.js +1 -3
  12. package/apps/api/index.js +1 -3
  13. package/apps/awsUtils.d.ts +1 -1
  14. package/apps/awsUtils.js +1 -3
  15. package/apps/common/CoreOutput.js +1 -3
  16. package/apps/common/VpcConfig.js +1 -3
  17. package/apps/common/index.js +1 -3
  18. package/apps/core/CoreCognito.js +1 -3
  19. package/apps/core/CoreDynamo.js +1 -3
  20. package/apps/core/CoreElasticSearch.js +1 -3
  21. package/apps/core/CoreEventBus.js +1 -3
  22. package/apps/core/CoreFileManager.js +1 -3
  23. package/apps/core/CoreVpc.js +1 -3
  24. package/apps/core/createCorePulumiApp.js +1 -3
  25. package/apps/core/index.js +1 -3
  26. package/apps/createAppBucket.js +1 -3
  27. package/apps/customDomain.js +1 -3
  28. package/apps/index.js +1 -3
  29. package/apps/lambdaUtils.js +1 -3
  30. package/apps/react/createReactPulumiApp.js +1 -3
  31. package/apps/react/index.js +1 -3
  32. package/apps/tenantRouter.js +4 -6
  33. package/apps/tenantRouter.js.map +1 -1
  34. package/apps/website/WebsitePrerendering.js +1 -3
  35. package/apps/website/createWebsitePulumiApp.js +1 -3
  36. package/apps/website/deliveryViewerRequest.js +1 -3
  37. package/apps/website/index.js +1 -3
  38. package/components/tenantRouter/WebsiteTenantRouter.js +1 -3
  39. package/components/tenantRouter/functions/origin/request.js +1 -3
  40. package/enterprise/createAdminPulumiApp.js +1 -3
  41. package/enterprise/createApiPulumiApp.js +5 -4
  42. package/enterprise/createApiPulumiApp.js.map +1 -1
  43. package/enterprise/createCorePulumiApp.js +5 -4
  44. package/enterprise/createCorePulumiApp.js.map +1 -1
  45. package/enterprise/createWebsitePulumiApp.js +5 -4
  46. package/enterprise/createWebsitePulumiApp.js.map +1 -1
  47. package/enterprise/index.js +1 -3
  48. package/index.js +1 -3
  49. package/package.json +8 -8
  50. package/utils/addDomainsUrlsOutputs.js +1 -3
  51. package/utils/crawlDirectory.js +1 -3
  52. package/utils/getPresignedPost.js +1 -3
  53. package/utils/index.js +1 -3
  54. package/utils/lambdaEnvVariables.js +1 -3
  55. package/utils/storageMigrate.js +1 -3
  56. package/utils/tagResources.js +1 -3
  57. package/utils/uploadFolderToS3.js +1 -3
@@ -13,6 +13,4 @@ const createAdminPulumiApp = projectAppParams => {
13
13
  folder: "apps/admin"
14
14
  }, projectAppParams));
15
15
  };
16
- exports.createAdminPulumiApp = createAdminPulumiApp;
17
-
18
- //# sourceMappingURL=createAdminPulumiApp.js.map
16
+ exports.createAdminPulumiApp = createAdminPulumiApp;
@@ -13,6 +13,4 @@ Object.keys(_createAdminPulumiApp).forEach(function (key) {
13
13
  return _createAdminPulumiApp[key];
14
14
  }
15
15
  });
16
- });
17
-
18
- //# sourceMappingURL=index.js.map
16
+ });
@@ -231,6 +231,4 @@ function createScheduleActionLambdaPolicy(app) {
231
231
  }
232
232
  }
233
233
  });
234
- }
235
-
236
- //# sourceMappingURL=ApiApwScheduler.js.map
234
+ }
@@ -91,6 +91,4 @@ const ApiCloudfront = (0, _pulumi.createAppModule)({
91
91
  });
92
92
  }
93
93
  });
94
- exports.ApiCloudfront = ApiCloudfront;
95
-
96
- //# sourceMappingURL=ApiCloudfront.js.map
94
+ exports.ApiCloudfront = ApiCloudfront;
@@ -154,6 +154,4 @@ function createFileManagerLambdaPolicy(app) {
154
154
  }
155
155
  }
156
156
  });
157
- }
158
-
159
- //# sourceMappingURL=ApiFileManager.js.map
157
+ }
@@ -75,6 +75,4 @@ function createRoute(app, api, name, params) {
75
75
  route,
76
76
  permission
77
77
  };
78
- }
79
-
80
- //# sourceMappingURL=ApiGateway.js.map
78
+ }
@@ -143,6 +143,4 @@ function createGraphqlLambdaPolicy(app) {
143
143
  })
144
144
  }
145
145
  });
146
- }
147
-
148
- //# sourceMappingURL=ApiGraphql.js.map
146
+ }
@@ -55,6 +55,4 @@ const ApiMigration = (0, _pulumi2.createAppModule)({
55
55
  };
56
56
  }
57
57
  });
58
- exports.ApiMigration = ApiMigration;
59
-
60
- //# sourceMappingURL=ApiMigration.js.map
58
+ exports.ApiMigration = ApiMigration;
@@ -33,6 +33,4 @@ const ApiOutput = (0, _pulumi.createAppModule)({
33
33
  });
34
34
  }
35
35
  });
36
- exports.ApiOutput = ApiOutput;
37
-
38
- //# sourceMappingURL=ApiOutput.js.map
36
+ exports.ApiOutput = ApiOutput;
@@ -241,6 +241,4 @@ function createImportLambdaPolicy(app) {
241
241
  })
242
242
  }
243
243
  });
244
- }
245
-
246
- //# sourceMappingURL=ApiPageBuilder.js.map
244
+ }
@@ -189,6 +189,4 @@ const createApiPulumiApp = (projectAppParams = {}) => {
189
189
  });
190
190
  return (0, _utils.withCommonLambdaEnvVariables)(app);
191
191
  };
192
- exports.createApiPulumiApp = createApiPulumiApp;
193
-
194
- //# sourceMappingURL=createApiPulumiApp.js.map
192
+ exports.createApiPulumiApp = createApiPulumiApp;
package/apps/api/index.js CHANGED
@@ -101,6 +101,4 @@ Object.keys(_ApiOutput).forEach(function (key) {
101
101
  return _ApiOutput[key];
102
102
  }
103
103
  });
104
- });
105
-
106
- //# sourceMappingURL=index.js.map
104
+ });
@@ -1,3 +1,3 @@
1
1
  import { PulumiApp } from "@webiny/pulumi";
2
2
  export declare function getAwsAccountId(app: PulumiApp): import("@pulumi/pulumi").Output<string>;
3
- export declare function getAwsRegion(app: PulumiApp): import("@pulumi/pulumi").Output<"af-south-1" | "ap-east-1" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ap-south-1" | "ap-south-2" | "ap-southeast-1" | "ap-southeast-2" | "ap-southeast-3" | "ca-central-1" | "cn-north-1" | "cn-northwest-1" | "eu-central-1" | "eu-central-2" | "eu-north-1" | "eu-south-1" | "eu-south-2" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "me-central-1" | "me-south-1" | "sa-east-1" | "us-gov-east-1" | "us-gov-west-1" | "us-east-1" | "us-east-2" | "us-west-1" | "us-west-2">;
3
+ export declare function getAwsRegion(app: PulumiApp): import("@pulumi/pulumi").Output<"us-east-1" | "af-south-1" | "ap-east-1" | "ap-northeast-1" | "ap-northeast-2" | "ap-northeast-3" | "ap-south-1" | "ap-south-2" | "ap-southeast-1" | "ap-southeast-2" | "ap-southeast-3" | "ca-central-1" | "cn-north-1" | "cn-northwest-1" | "eu-central-1" | "eu-central-2" | "eu-north-1" | "eu-south-1" | "eu-south-2" | "eu-west-1" | "eu-west-2" | "eu-west-3" | "me-central-1" | "me-south-1" | "sa-east-1" | "us-gov-east-1" | "us-gov-west-1" | "us-east-2" | "us-west-1" | "us-west-2">;
package/apps/awsUtils.js CHANGED
@@ -16,6 +16,4 @@ function getAwsRegion(app) {
16
16
  return app.addHandler(() => {
17
17
  return aws.config.requireRegion();
18
18
  });
19
- }
20
-
21
- //# sourceMappingURL=awsUtils.js.map
19
+ }
@@ -40,6 +40,4 @@ const CoreOutput = (0, _pulumi.createAppModule)({
40
40
  });
41
41
  }
42
42
  });
43
- exports.CoreOutput = CoreOutput;
44
-
45
- //# sourceMappingURL=CoreOutput.js.map
43
+ exports.CoreOutput = CoreOutput;
@@ -27,6 +27,4 @@ const VpcConfig = (0, _pulumi.createAppModule)({
27
27
  });
28
28
  }
29
29
  });
30
- exports.VpcConfig = VpcConfig;
31
-
32
- //# sourceMappingURL=VpcConfig.js.map
30
+ exports.VpcConfig = VpcConfig;
@@ -24,6 +24,4 @@ Object.keys(_VpcConfig).forEach(function (key) {
24
24
  return _VpcConfig[key];
25
25
  }
26
26
  });
27
- });
28
-
29
- //# sourceMappingURL=index.js.map
27
+ });
@@ -106,6 +106,4 @@ const CoreCognito = (0, _pulumi.createAppModule)({
106
106
  };
107
107
  }
108
108
  });
109
- exports.CoreCognito = CoreCognito;
110
-
111
- //# sourceMappingURL=CoreCognito.js.map
109
+ exports.CoreCognito = CoreCognito;
@@ -42,6 +42,4 @@ const CoreDynamo = (0, _pulumi.createAppModule)({
42
42
  });
43
43
  }
44
44
  });
45
- exports.CoreDynamo = CoreDynamo;
46
-
47
- //# sourceMappingURL=CoreDynamo.js.map
45
+ exports.CoreDynamo = CoreDynamo;
@@ -269,6 +269,4 @@ function getDynamoDbToElasticLambdaPolicy(app, domain) {
269
269
  }
270
270
  }
271
271
  });
272
- }
273
-
274
- //# sourceMappingURL=CoreElasticSearch.js.map
272
+ }
@@ -16,6 +16,4 @@ const CoreEventBus = (0, _pulumi.createAppModule)({
16
16
  });
17
17
  }
18
18
  });
19
- exports.CoreEventBus = CoreEventBus;
20
-
21
- //# sourceMappingURL=CoreEventBus.js.map
19
+ exports.CoreEventBus = CoreEventBus;
@@ -47,6 +47,4 @@ const CoreFileManger = (0, _pulumi.createAppModule)({
47
47
  };
48
48
  }
49
49
  });
50
- exports.CoreFileManger = CoreFileManger;
51
-
52
- //# sourceMappingURL=CoreFileManager.js.map
50
+ exports.CoreFileManger = CoreFileManger;
@@ -144,6 +144,4 @@ const CoreVpc = (0, _pulumi.createAppModule)({
144
144
  };
145
145
  }
146
146
  });
147
- exports.CoreVpc = CoreVpc;
148
-
149
- //# sourceMappingURL=CoreVpc.js.map
147
+ exports.CoreVpc = CoreVpc;
@@ -106,6 +106,4 @@ function createCorePulumiApp(projectAppParams = {}) {
106
106
  }
107
107
  });
108
108
  return app;
109
- }
110
-
111
- //# sourceMappingURL=createCorePulumiApp.js.map
109
+ }
@@ -68,6 +68,4 @@ Object.keys(_createCorePulumiApp).forEach(function (key) {
68
68
  return _createCorePulumiApp[key];
69
69
  }
70
70
  });
71
- });
72
-
73
- //# sourceMappingURL=index.js.map
71
+ });
@@ -104,6 +104,4 @@ function createPrivateAppBucket(app, name) {
104
104
  bucketPublicAccessBlock,
105
105
  bucketPolicy
106
106
  };
107
- }
108
-
109
- //# sourceMappingURL=createAppBucket.js.map
107
+ }
@@ -10,6 +10,4 @@ function applyCustomDomain(cloudfront, params) {
10
10
  acmCertificateArn: params.acmCertificateArn,
11
11
  sslSupportMethod: params.sslSupportMethod ?? "sni-only"
12
12
  });
13
- }
14
-
15
- //# sourceMappingURL=customDomain.js.map
13
+ }
package/apps/index.js CHANGED
@@ -84,6 +84,4 @@ Object.keys(_website).forEach(function (key) {
84
84
  }
85
85
  });
86
86
  });
87
- var _customDomain = require("./customDomain");
88
-
89
- //# sourceMappingURL=index.js.map
87
+ var _customDomain = require("./customDomain");
@@ -71,6 +71,4 @@ function createLambdaRole(app, params) {
71
71
  }
72
72
  });
73
73
  return role;
74
- }
75
-
76
- //# sourceMappingURL=lambdaUtils.js.map
74
+ }
@@ -134,6 +134,4 @@ const createReactPulumiApp = projectAppParams => {
134
134
  }
135
135
  });
136
136
  };
137
- exports.createReactPulumiApp = createReactPulumiApp;
138
-
139
- //# sourceMappingURL=createReactPulumiApp.js.map
137
+ exports.createReactPulumiApp = createReactPulumiApp;
@@ -13,6 +13,4 @@ Object.keys(_createReactPulumiApp).forEach(function (key) {
13
13
  return _createReactPulumiApp[key];
14
14
  }
15
15
  });
16
- });
17
-
18
- //# sourceMappingURL=index.js.map
16
+ });
@@ -61,9 +61,6 @@ function applyTenantRouter(app, cloudfront) {
61
61
  Effect: "Allow"
62
62
  }]
63
63
  }
64
- },
65
- meta: {
66
- isLambdaFunctionRole: true
67
64
  }
68
65
  });
69
66
  const awsUsEast1 = new aws.Provider("us-east-1", {
@@ -92,6 +89,9 @@ function applyTenantRouter(app, cloudfront) {
92
89
  opts: {
93
90
  provider: awsUsEast1,
94
91
  retainOnDelete: true
92
+ },
93
+ meta: {
94
+ canUseVpc: false
95
95
  }
96
96
  });
97
97
  cloudfront.config.defaultCacheBehavior(value => {
@@ -115,6 +115,4 @@ function applyTenantRouter(app, cloudfront) {
115
115
  return {
116
116
  originLambda
117
117
  };
118
- }
119
-
120
- //# sourceMappingURL=tenantRouter.js.map
118
+ }
@@ -1 +1 @@
1
- {"version":3,"names":["_fs","require","pulumi","_interopRequireWildcard","aws","_common","createFunctionArchive","dynamoDbTable","region","handler","readFileSync","__dirname","source","replace","asset","AssetArchive","StringAsset","PREFIX","applyTenantRouter","app","cloudfront","String","process","env","AWS_REGION","core","getModule","CoreOutput","primaryDynamodbTableName","inlinePolicies","all","getCallerIdentity","apply","identity","name","policy","JSON","stringify","Version","Statement","Sid","Effect","Action","Resource","accountId","role","addResource","iam","Role","config","managedPolicyArns","ManagedPolicies","AWSLambdaBasicExecutionRole","assumeRolePolicy","Principal","Principals","LambdaPrincipal","EdgeLambdaPrincipal","meta","isLambdaFunctionRole","awsUsEast1","Provider","originLambda","lambda","Function","publish","runtime","output","arn","timeout","memorySize","code","opts","provider","retainOnDelete","defaultCacheBehavior","value","_value$forwardedValue","_value$forwardedValue2","_value$forwardedValue3","_objectSpread2","default","forwardedValues","queryString","cookies","forward","headers","lambdaFunctionAssociations","eventType","includeBody","lambdaArn","qualifiedArn"],"sources":["tenantRouter.ts"],"sourcesContent":["import { readFileSync } from \"fs\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport { PulumiApp, PulumiAppResource } from \"@webiny/pulumi\";\nimport { CoreOutput } from \"./common\";\n\ninterface Params {\n region: string;\n dynamoDbTable: string;\n}\n\nfunction createFunctionArchive({ dynamoDbTable, region }: Params) {\n const handler = readFileSync(\n __dirname + \"/../components/tenantRouter/functions/origin/request.js\",\n \"utf-8\"\n );\n\n const source = handler\n .replace(\"{DB_TABLE_NAME}\", dynamoDbTable)\n .replace(\"{DB_TABLE_REGION}\", region);\n\n return new pulumi.asset.AssetArchive({\n \"index.js\": new pulumi.asset.StringAsset(source)\n });\n}\n\nconst PREFIX = \"website-router\";\n\nexport function applyTenantRouter(\n app: PulumiApp,\n cloudfront: PulumiAppResource<typeof aws.cloudfront.Distribution>\n) {\n const region = String(process.env.AWS_REGION);\n\n // Get Core app output\n const core = app.getModule(CoreOutput);\n\n // `primaryDynamodbTableName` is a string, hence the type cast here.\n const dynamoDbTable = core.primaryDynamodbTableName;\n\n // Because of JSON.stringify, we need to resolve promises upfront.\n const inlinePolicies = pulumi\n .all([aws.getCallerIdentity({}), dynamoDbTable])\n .apply(([identity, dynamoDbTable]) => [\n {\n name: \"tenant-router-policy\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"PermissionForDynamodb\",\n Effect: \"Allow\",\n Action: [\"dynamodb:GetItem\", \"dynamodb:Query\"],\n Resource: [\n `arn:aws:dynamodb:${region}:${identity.accountId}:table/${dynamoDbTable}`,\n `arn:aws:dynamodb:${region}:${identity.accountId}:table/${dynamoDbTable}/*`\n ]\n }\n ]\n })\n }\n ]);\n\n const role = app.addResource(aws.iam.Role, {\n name: `${PREFIX}-role`,\n config: {\n inlinePolicies,\n managedPolicyArns: [aws.iam.ManagedPolicies.AWSLambdaBasicExecutionRole],\n assumeRolePolicy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: \"sts:AssumeRole\",\n Principal: aws.iam.Principals.LambdaPrincipal,\n Effect: \"Allow\"\n },\n {\n Action: \"sts:AssumeRole\",\n Principal: aws.iam.Principals.EdgeLambdaPrincipal,\n Effect: \"Allow\"\n }\n ]\n }\n },\n meta: { isLambdaFunctionRole: true }\n });\n\n const awsUsEast1 = new aws.Provider(\"us-east-1\", { region: \"us-east-1\" });\n\n const originLambda = app.addResource(aws.lambda.Function, {\n name: `${PREFIX}-origin-request`,\n config: {\n publish: true,\n runtime: \"nodejs14.x\",\n handler: \"index.handler\",\n role: role.output.arn,\n timeout: 5,\n memorySize: 128,\n code: dynamoDbTable.apply(dynamoDbTable => {\n return createFunctionArchive({\n region,\n dynamoDbTable\n });\n })\n },\n // With the `retainOnDelete` option set to `true`, the Lambda function will not be deleted when\n // the environment is destroyed. Users need to delete the function manually. We decided to use\n // this option here because it enables us to avoid annoying AWS Lambda function replication\n // errors upon destroying the stack (see https://github.com/pulumi/pulumi-aws/issues/2178).\n opts: { provider: awsUsEast1, retainOnDelete: true }\n });\n\n cloudfront.config.defaultCacheBehavior(value => {\n return {\n ...value,\n // We need to forward the `Host` header so the Lambda@Edge knows what custom domain was requested.\n forwardedValues: {\n ...value.forwardedValues,\n queryString: value.forwardedValues?.queryString || false,\n cookies: value.forwardedValues?.cookies || { forward: \"none\" },\n headers: [...(value.forwardedValues?.headers || []), \"Host\"]\n },\n lambdaFunctionAssociations: [\n ...(value.lambdaFunctionAssociations || []),\n {\n eventType: \"origin-request\",\n includeBody: false,\n lambdaArn: originLambda.output.qualifiedArn\n }\n ]\n };\n });\n\n return { originLambda };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_fs","require","pulumi","_interopRequireWildcard","aws","_common","createFunctionArchive","dynamoDbTable","region","handler","readFileSync","__dirname","source","replace","asset","AssetArchive","StringAsset","PREFIX","applyTenantRouter","app","cloudfront","String","process","env","AWS_REGION","core","getModule","CoreOutput","primaryDynamodbTableName","inlinePolicies","all","getCallerIdentity","apply","identity","name","policy","JSON","stringify","Version","Statement","Sid","Effect","Action","Resource","accountId","role","addResource","iam","Role","config","managedPolicyArns","ManagedPolicies","AWSLambdaBasicExecutionRole","assumeRolePolicy","Principal","Principals","LambdaPrincipal","EdgeLambdaPrincipal","awsUsEast1","Provider","originLambda","lambda","Function","publish","runtime","output","arn","timeout","memorySize","code","opts","provider","retainOnDelete","meta","canUseVpc","defaultCacheBehavior","value","_value$forwardedValue","_value$forwardedValue2","_value$forwardedValue3","_objectSpread2","default","forwardedValues","queryString","cookies","forward","headers","lambdaFunctionAssociations","eventType","includeBody","lambdaArn","qualifiedArn"],"sources":["tenantRouter.ts"],"sourcesContent":["import { readFileSync } from \"fs\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport { PulumiApp, PulumiAppResource } from \"@webiny/pulumi\";\nimport { CoreOutput } from \"./common\";\n\ninterface Params {\n region: string;\n dynamoDbTable: string;\n}\n\nfunction createFunctionArchive({ dynamoDbTable, region }: Params) {\n const handler = readFileSync(\n __dirname + \"/../components/tenantRouter/functions/origin/request.js\",\n \"utf-8\"\n );\n\n const source = handler\n .replace(\"{DB_TABLE_NAME}\", dynamoDbTable)\n .replace(\"{DB_TABLE_REGION}\", region);\n\n return new pulumi.asset.AssetArchive({\n \"index.js\": new pulumi.asset.StringAsset(source)\n });\n}\n\nconst PREFIX = \"website-router\";\n\nexport function applyTenantRouter(\n app: PulumiApp,\n cloudfront: PulumiAppResource<typeof aws.cloudfront.Distribution>\n) {\n const region = String(process.env.AWS_REGION);\n\n // Get Core app output\n const core = app.getModule(CoreOutput);\n\n // `primaryDynamodbTableName` is a string, hence the type cast here.\n const dynamoDbTable = core.primaryDynamodbTableName;\n\n // Because of JSON.stringify, we need to resolve promises upfront.\n const inlinePolicies = pulumi\n .all([aws.getCallerIdentity({}), dynamoDbTable])\n .apply(([identity, dynamoDbTable]) => [\n {\n name: \"tenant-router-policy\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"PermissionForDynamodb\",\n Effect: \"Allow\",\n Action: [\"dynamodb:GetItem\", \"dynamodb:Query\"],\n Resource: [\n `arn:aws:dynamodb:${region}:${identity.accountId}:table/${dynamoDbTable}`,\n `arn:aws:dynamodb:${region}:${identity.accountId}:table/${dynamoDbTable}/*`\n ]\n }\n ]\n })\n }\n ]);\n\n const role = app.addResource(aws.iam.Role, {\n name: `${PREFIX}-role`,\n config: {\n inlinePolicies,\n managedPolicyArns: [aws.iam.ManagedPolicies.AWSLambdaBasicExecutionRole],\n assumeRolePolicy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: \"sts:AssumeRole\",\n Principal: aws.iam.Principals.LambdaPrincipal,\n Effect: \"Allow\"\n },\n {\n Action: \"sts:AssumeRole\",\n Principal: aws.iam.Principals.EdgeLambdaPrincipal,\n Effect: \"Allow\"\n }\n ]\n }\n }\n });\n\n const awsUsEast1 = new aws.Provider(\"us-east-1\", { region: \"us-east-1\" });\n\n const originLambda = app.addResource(aws.lambda.Function, {\n name: `${PREFIX}-origin-request`,\n config: {\n publish: true,\n runtime: \"nodejs14.x\",\n handler: \"index.handler\",\n role: role.output.arn,\n timeout: 5,\n memorySize: 128,\n code: dynamoDbTable.apply(dynamoDbTable => {\n return createFunctionArchive({\n region,\n dynamoDbTable\n });\n })\n },\n // With the `retainOnDelete` option set to `true`, the Lambda function will not be deleted when\n // the environment is destroyed. Users need to delete the function manually. We decided to use\n // this option here because it enables us to avoid annoying AWS Lambda function replication\n // errors upon destroying the stack (see https://github.com/pulumi/pulumi-aws/issues/2178).\n opts: { provider: awsUsEast1, retainOnDelete: true },\n meta: {\n canUseVpc: false\n }\n });\n\n cloudfront.config.defaultCacheBehavior(value => {\n return {\n ...value,\n // We need to forward the `Host` header so the Lambda@Edge knows what custom domain was requested.\n forwardedValues: {\n ...value.forwardedValues,\n queryString: value.forwardedValues?.queryString || false,\n cookies: value.forwardedValues?.cookies || { forward: \"none\" },\n headers: [...(value.forwardedValues?.headers || []), \"Host\"]\n },\n lambdaFunctionAssociations: [\n ...(value.lambdaFunctionAssociations || []),\n {\n eventType: \"origin-request\",\n includeBody: false,\n lambdaArn: originLambda.output.qualifiedArn\n }\n ]\n };\n });\n\n return { originLambda };\n}\n"],"mappings":"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"}
@@ -283,6 +283,4 @@ function createLambdaPolicy(app, queue, params) {
283
283
  }
284
284
  }
285
285
  });
286
- }
287
-
288
- //# sourceMappingURL=WebsitePrerendering.js.map
286
+ }
@@ -258,6 +258,4 @@ const createWebsitePulumiApp = (projectAppParams = {}) => {
258
258
  });
259
259
  return (0, _utils.withCommonLambdaEnvVariables)(app);
260
260
  };
261
- exports.createWebsitePulumiApp = createWebsitePulumiApp;
262
-
263
- //# sourceMappingURL=createWebsitePulumiApp.js.map
261
+ exports.createWebsitePulumiApp = createWebsitePulumiApp;
@@ -30,6 +30,4 @@ function handler(event) {
30
30
  var request = event.request;
31
31
  request.uri = sanitizeRequestURI(request.uri);
32
32
  return request;
33
- }
34
-
35
- //# sourceMappingURL=deliveryViewerRequest.js.map
33
+ }
@@ -13,6 +13,4 @@ Object.keys(_createWebsitePulumiApp).forEach(function (key) {
13
13
  return _createWebsitePulumiApp[key];
14
14
  }
15
15
  });
16
- });
17
-
18
- //# sourceMappingURL=index.js.map
16
+ });
@@ -85,6 +85,4 @@ class WebsiteTenantRouter extends pulumi.ComponentResource {
85
85
  this.registerOutputs();
86
86
  }
87
87
  }
88
- exports.WebsiteTenantRouter = WebsiteTenantRouter;
89
-
90
- //# sourceMappingURL=WebsiteTenantRouter.js.map
88
+ exports.WebsiteTenantRouter = WebsiteTenantRouter;
@@ -118,6 +118,4 @@ exports.handler = async event => {
118
118
  return handleOriginRequest(request);
119
119
  }
120
120
  return request;
121
- };
122
-
123
- //# sourceMappingURL=request.js.map
121
+ };
@@ -21,6 +21,4 @@ Object.defineProperty(exports, "createAdminPulumiApp", {
21
21
  return _createAdminPulumiApp.createAdminPulumiApp;
22
22
  }
23
23
  });
24
- var _createAdminPulumiApp = require("../apps/admin/createAdminPulumiApp");
25
-
26
- //# sourceMappingURL=createAdminPulumiApp.js.map
24
+ var _createAdminPulumiApp = require("../apps/admin/createAdminPulumiApp");
@@ -48,7 +48,10 @@ function createApiPulumiApp(projectAppParams = {}) {
48
48
  }
49
49
  onResource(resource => {
50
50
  if ((0, _pulumi.isResourceOfType)(resource, aws.lambda.Function)) {
51
- resource.config.vpcConfig(useExistingVpc.lambdaFunctionsVpcConfig);
51
+ const canUseVpc = resource.meta.canUseVpc !== false;
52
+ if (canUseVpc) {
53
+ resource.config.vpcConfig(useExistingVpc.lambdaFunctionsVpcConfig);
54
+ }
52
55
  }
53
56
  if ((0, _pulumi.isResourceOfType)(resource, aws.iam.Role)) {
54
57
  if (resource.meta.isLambdaFunctionRole) {
@@ -66,6 +69,4 @@ function createApiPulumiApp(projectAppParams = {}) {
66
69
  return (_projectAppParams$pul2 = projectAppParams.pulumi) === null || _projectAppParams$pul2 === void 0 ? void 0 : _projectAppParams$pul2.call(projectAppParams, ...args);
67
70
  }
68
71
  }));
69
- }
70
-
71
- //# sourceMappingURL=createApiPulumiApp.js.map
72
+ }
@@ -1 +1 @@
1
- {"version":3,"names":["aws","_interopRequireWildcard","require","_createApiPulumiApp","_pulumi","createApiPulumiApp","projectAppParams","baseCreateApiPulumiApp","_objectSpread2","default","vpc","getParam","usingAdvancedVpcParams","useExistingVpc","Boolean","pulumi","args","_projectAppParams$pul2","_projectAppParams$pul","call","onResource","addResource","lambdaFunctionsVpcConfig","Error","resource","isResourceOfType","lambda","Function","config","vpcConfig","iam","Role","meta","isLambdaFunctionRole","RolePolicyAttachment","name","role","output","policyArn","ManagedPolicy","AWSLambdaVPCAccessExecutionRole"],"sources":["createApiPulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport {\n createApiPulumiApp as baseCreateApiPulumiApp,\n CreateApiPulumiAppParams as BaseCreateApiPulumiAppParams\n} from \"~/apps/api/createApiPulumiApp\";\nimport { isResourceOfType, PulumiAppParam } from \"@webiny/pulumi\";\n\nexport type ApiPulumiApp = ReturnType<typeof createApiPulumiApp>;\n\nexport type ApiPulumiAppAdvancedVpcParams = Partial<{\n useExistingVpc: {\n lambdaFunctionsVpcConfig: aws.types.input.lambda.FunctionVpcConfig;\n };\n}>;\n\nexport interface CreateApiPulumiAppParams extends Omit<BaseCreateApiPulumiAppParams, \"vpc\"> {\n vpc?: PulumiAppParam<boolean | ApiPulumiAppAdvancedVpcParams>;\n}\n\nexport function createApiPulumiApp(projectAppParams: CreateApiPulumiAppParams = {}) {\n return baseCreateApiPulumiApp({\n ...projectAppParams,\n // If using existing VPC, we ensure `vpc` param is set to `false`.\n vpc: ({ getParam }) => {\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n return usingAdvancedVpcParams && vpc.useExistingVpc ? false : Boolean(vpc);\n },\n pulumi(...args) {\n const [{ getParam }] = args;\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n\n // Not using advanced VPC params? Then immediately exit.\n if (!usingAdvancedVpcParams) {\n return projectAppParams.pulumi?.(...args);\n }\n\n const [{ onResource, addResource }] = args;\n const { useExistingVpc } = vpc;\n\n // 1. We first deal with \"existing VPC\" setup.\n if (useExistingVpc) {\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n resource.config.vpcConfig(useExistingVpc!.lambdaFunctionsVpcConfig);\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn: aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n }\n\n return projectAppParams.pulumi?.(...args);\n }\n });\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AAIA,IAAAE,OAAA,GAAAF,OAAA;AAcO,SAASG,kBAAkBA,CAACC,gBAA0C,GAAG,CAAC,CAAC,EAAE;EAChF,OAAO,IAAAC,sCAAsB,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACtBH,gBAAgB;IACnB;IACAI,GAAG,EAAEA,CAAC;MAAEC;IAAS,CAAC,KAAK;MACnB,MAAMD,GAAG,GAAGC,QAAQ,CAACL,gBAAgB,CAACI,GAAG,CAAC;MAC1C,MAAME,sBAAsB,GAAGF,GAAG,IAAI,OAAOA,GAAG,KAAK,SAAS;MAC9D,OAAOE,sBAAsB,IAAIF,GAAG,CAACG,cAAc,GAAG,KAAK,GAAGC,OAAO,CAACJ,GAAG,CAAC;IAC9E,CAAC;IACDK,MAAMA,CAAC,GAAGC,IAAI,EAAE;MAAA,IAAAC,sBAAA;MACZ,MAAM,CAAC;QAAEN;MAAS,CAAC,CAAC,GAAGK,IAAI;MAC3B,MAAMN,GAAG,GAAGC,QAAQ,CAACL,gBAAgB,CAACI,GAAG,CAAC;MAC1C,MAAME,sBAAsB,GAAGF,GAAG,IAAI,OAAOA,GAAG,KAAK,SAAS;;MAE9D;MACA,IAAI,CAACE,sBAAsB,EAAE;QAAA,IAAAM,qBAAA;QACzB,QAAAA,qBAAA,GAAOZ,gBAAgB,CAACS,MAAM,cAAAG,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAAb,gBAAgB,EAAU,GAAGU,IAAI,CAAC;MAC7C;MAEA,MAAM,CAAC;QAAEI,UAAU;QAAEC;MAAY,CAAC,CAAC,GAAGL,IAAI;MAC1C,MAAM;QAAEH;MAAe,CAAC,GAAGH,GAAG;;MAE9B;MACA,IAAIG,cAAc,EAAE;QAChB,IAAI,CAACA,cAAc,CAACS,wBAAwB,EAAE;UAC1C,MAAM,IAAIC,KAAK,CACX,6GACJ,CAAC;QACL;QAEAH,UAAU,CAACI,QAAQ,IAAI;UACnB,IAAI,IAAAC,wBAAgB,EAACD,QAAQ,EAAExB,GAAG,CAAC0B,MAAM,CAACC,QAAQ,CAAC,EAAE;YACjDH,QAAQ,CAACI,MAAM,CAACC,SAAS,CAAChB,cAAc,CAAES,wBAAwB,CAAC;UACvE;UAEA,IAAI,IAAAG,wBAAgB,EAACD,QAAQ,EAAExB,GAAG,CAAC8B,GAAG,CAACC,IAAI,CAAC,EAAE;YAC1C,IAAIP,QAAQ,CAACQ,IAAI,CAACC,oBAAoB,EAAE;cACpCZ,WAAW,CAACrB,GAAG,CAAC8B,GAAG,CAACI,oBAAoB,EAAE;gBACtCC,IAAI,EAAG,GAAEX,QAAQ,CAACW,IAAK,4BAA2B;gBAClDP,MAAM,EAAE;kBACJQ,IAAI,EAAEZ,QAAQ,CAACa,MAAM,CAACF,IAAI;kBAC1BG,SAAS,EAAEtC,GAAG,CAAC8B,GAAG,CAACS,aAAa,CAACC;gBACrC;cACJ,CAAC,CAAC;YACN;UACJ;QACJ,CAAC,CAAC;MACN;MAEA,QAAAvB,sBAAA,GAAOX,gBAAgB,CAACS,MAAM,cAAAE,sBAAA,uBAAvBA,sBAAA,CAAAE,IAAA,CAAAb,gBAAgB,EAAU,GAAGU,IAAI,CAAC;IAC7C;EAAC,EACJ,CAAC;AACN"}
1
+ {"version":3,"names":["aws","_interopRequireWildcard","require","_createApiPulumiApp","_pulumi","createApiPulumiApp","projectAppParams","baseCreateApiPulumiApp","_objectSpread2","default","vpc","getParam","usingAdvancedVpcParams","useExistingVpc","Boolean","pulumi","args","_projectAppParams$pul2","_projectAppParams$pul","call","onResource","addResource","lambdaFunctionsVpcConfig","Error","resource","isResourceOfType","lambda","Function","canUseVpc","meta","config","vpcConfig","iam","Role","isLambdaFunctionRole","RolePolicyAttachment","name","role","output","policyArn","ManagedPolicy","AWSLambdaVPCAccessExecutionRole"],"sources":["createApiPulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport {\n createApiPulumiApp as baseCreateApiPulumiApp,\n CreateApiPulumiAppParams as BaseCreateApiPulumiAppParams\n} from \"~/apps/api/createApiPulumiApp\";\nimport { isResourceOfType, PulumiAppParam } from \"@webiny/pulumi\";\n\nexport type ApiPulumiApp = ReturnType<typeof createApiPulumiApp>;\n\nexport type ApiPulumiAppAdvancedVpcParams = Partial<{\n useExistingVpc: {\n lambdaFunctionsVpcConfig: aws.types.input.lambda.FunctionVpcConfig;\n };\n}>;\n\nexport interface CreateApiPulumiAppParams extends Omit<BaseCreateApiPulumiAppParams, \"vpc\"> {\n vpc?: PulumiAppParam<boolean | ApiPulumiAppAdvancedVpcParams>;\n}\n\nexport function createApiPulumiApp(projectAppParams: CreateApiPulumiAppParams = {}) {\n return baseCreateApiPulumiApp({\n ...projectAppParams,\n // If using existing VPC, we ensure `vpc` param is set to `false`.\n vpc: ({ getParam }) => {\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n return usingAdvancedVpcParams && vpc.useExistingVpc ? false : Boolean(vpc);\n },\n pulumi(...args) {\n const [{ getParam }] = args;\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n\n // Not using advanced VPC params? Then immediately exit.\n if (!usingAdvancedVpcParams) {\n return projectAppParams.pulumi?.(...args);\n }\n\n const [{ onResource, addResource }] = args;\n const { useExistingVpc } = vpc;\n\n // 1. We first deal with \"existing VPC\" setup.\n if (useExistingVpc) {\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n const canUseVpc = resource.meta.canUseVpc !== false;\n if (canUseVpc) {\n resource.config.vpcConfig(useExistingVpc!.lambdaFunctionsVpcConfig);\n }\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn: aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n }\n\n return projectAppParams.pulumi?.(...args);\n }\n });\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AAIA,IAAAE,OAAA,GAAAF,OAAA;AAcO,SAASG,kBAAkBA,CAACC,gBAA0C,GAAG,CAAC,CAAC,EAAE;EAChF,OAAO,IAAAC,sCAAsB,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACtBH,gBAAgB;IACnB;IACAI,GAAG,EAAEA,CAAC;MAAEC;IAAS,CAAC,KAAK;MACnB,MAAMD,GAAG,GAAGC,QAAQ,CAACL,gBAAgB,CAACI,GAAG,CAAC;MAC1C,MAAME,sBAAsB,GAAGF,GAAG,IAAI,OAAOA,GAAG,KAAK,SAAS;MAC9D,OAAOE,sBAAsB,IAAIF,GAAG,CAACG,cAAc,GAAG,KAAK,GAAGC,OAAO,CAACJ,GAAG,CAAC;IAC9E,CAAC;IACDK,MAAMA,CAAC,GAAGC,IAAI,EAAE;MAAA,IAAAC,sBAAA;MACZ,MAAM,CAAC;QAAEN;MAAS,CAAC,CAAC,GAAGK,IAAI;MAC3B,MAAMN,GAAG,GAAGC,QAAQ,CAACL,gBAAgB,CAACI,GAAG,CAAC;MAC1C,MAAME,sBAAsB,GAAGF,GAAG,IAAI,OAAOA,GAAG,KAAK,SAAS;;MAE9D;MACA,IAAI,CAACE,sBAAsB,EAAE;QAAA,IAAAM,qBAAA;QACzB,QAAAA,qBAAA,GAAOZ,gBAAgB,CAACS,MAAM,cAAAG,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAAb,gBAAgB,EAAU,GAAGU,IAAI,CAAC;MAC7C;MAEA,MAAM,CAAC;QAAEI,UAAU;QAAEC;MAAY,CAAC,CAAC,GAAGL,IAAI;MAC1C,MAAM;QAAEH;MAAe,CAAC,GAAGH,GAAG;;MAE9B;MACA,IAAIG,cAAc,EAAE;QAChB,IAAI,CAACA,cAAc,CAACS,wBAAwB,EAAE;UAC1C,MAAM,IAAIC,KAAK,CACX,6GACJ,CAAC;QACL;QAEAH,UAAU,CAACI,QAAQ,IAAI;UACnB,IAAI,IAAAC,wBAAgB,EAACD,QAAQ,EAAExB,GAAG,CAAC0B,MAAM,CAACC,QAAQ,CAAC,EAAE;YACjD,MAAMC,SAAS,GAAGJ,QAAQ,CAACK,IAAI,CAACD,SAAS,KAAK,KAAK;YACnD,IAAIA,SAAS,EAAE;cACXJ,QAAQ,CAACM,MAAM,CAACC,SAAS,CAAClB,cAAc,CAAES,wBAAwB,CAAC;YACvE;UACJ;UAEA,IAAI,IAAAG,wBAAgB,EAACD,QAAQ,EAAExB,GAAG,CAACgC,GAAG,CAACC,IAAI,CAAC,EAAE;YAC1C,IAAIT,QAAQ,CAACK,IAAI,CAACK,oBAAoB,EAAE;cACpCb,WAAW,CAACrB,GAAG,CAACgC,GAAG,CAACG,oBAAoB,EAAE;gBACtCC,IAAI,EAAG,GAAEZ,QAAQ,CAACY,IAAK,4BAA2B;gBAClDN,MAAM,EAAE;kBACJO,IAAI,EAAEb,QAAQ,CAACc,MAAM,CAACF,IAAI;kBAC1BG,SAAS,EAAEvC,GAAG,CAACgC,GAAG,CAACQ,aAAa,CAACC;gBACrC;cACJ,CAAC,CAAC;YACN;UACJ;QACJ,CAAC,CAAC;MACN;MAEA,QAAAxB,sBAAA,GAAOX,gBAAgB,CAACS,MAAM,cAAAE,sBAAA,uBAAvBA,sBAAA,CAAAE,IAAA,CAAAb,gBAAgB,EAAU,GAAGU,IAAI,CAAC;IAC7C;EAAC,EACJ,CAAC;AACN"}
@@ -67,7 +67,10 @@ function createCorePulumiApp(projectAppParams = {}) {
67
67
  }
68
68
  onResource(resource => {
69
69
  if ((0, _pulumi2.isResourceOfType)(resource, aws.lambda.Function)) {
70
- resource.config.vpcConfig(useExistingVpc.lambdaFunctionsVpcConfig);
70
+ const canUseVpc = resource.meta.canUseVpc !== false;
71
+ if (canUseVpc) {
72
+ resource.config.vpcConfig(useExistingVpc.lambdaFunctionsVpcConfig);
73
+ }
71
74
  }
72
75
  if ((0, _pulumi2.isResourceOfType)(resource, aws.iam.Role)) {
73
76
  if (resource.meta.isLambdaFunctionRole) {
@@ -140,6 +143,4 @@ function createCorePulumiApp(projectAppParams = {}) {
140
143
  return (_projectAppParams$pul3 = projectAppParams.pulumi) === null || _projectAppParams$pul3 === void 0 ? void 0 : _projectAppParams$pul3.call(projectAppParams, ...args);
141
144
  }
142
145
  }));
143
- }
144
-
145
- //# sourceMappingURL=createCorePulumiApp.js.map
146
+ }
@@ -1 +1 @@
1
- {"version":3,"names":["aws","_interopRequireWildcard","require","pulumi","_createCorePulumiApp","_pulumi2","_awsUtils","createCorePulumiApp","projectAppParams","baseCreateCorePulumiApp","_objectSpread2","default","vpc","getParam","usingAdvancedVpcParams","useExistingVpc","Boolean","args","_projectAppParams$pul3","app","_projectAppParams$pul","call","resources","addResource","onResource","useVpcEndpoints","_projectAppParams$pul2","Error","elasticSearch","elasticSearchDomainVpcConfig","resource","isResourceOfType","elasticsearch","Domain","config","vpcOptions","lambdaFunctionsVpcConfig","lambda","Function","vpcConfig","iam","Role","meta","isLambdaFunctionRole","RolePolicyAttachment","name","role","output","policyArn","ManagedPolicy","AWSLambdaVPCAccessExecutionRole","region","getAwsRegion","ec2","Vpc","enableDnsSupport","enableDnsHostnames","subnets","routeTables","VpcEndpoint","vpcId","id","serviceName","interpolate","routeTableIds","privateSubnets","vpcEndpointType","privateDnsEnabled","securityGroupIds","defaultSecurityGroupId","subnetIds","private","map","subNet"],"sources":["createCorePulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport {\n createCorePulumiApp as baseCreateCorePulumiApp,\n CreateCorePulumiAppParams as BaseCreateCorePulumiAppParams\n} from \"~/apps/core/createCorePulumiApp\";\nimport { isResourceOfType, PulumiAppParam } from \"@webiny/pulumi\";\nimport { getAwsRegion } from \"~/apps/awsUtils\";\n\nexport type CorePulumiApp = ReturnType<typeof createCorePulumiApp>;\n\nexport type CorePulumiAppAdvancedVpcParams = Partial<{\n useVpcEndpoints: boolean;\n useExistingVpc: {\n elasticSearchDomainVpcConfig?: aws.types.input.elasticsearch.DomainVpcOptions;\n lambdaFunctionsVpcConfig: aws.types.input.lambda.FunctionVpcConfig;\n };\n}>;\n\nexport interface CreateCorePulumiAppParams extends Omit<BaseCreateCorePulumiAppParams, \"vpc\"> {\n vpc?: PulumiAppParam<boolean | CorePulumiAppAdvancedVpcParams>;\n}\n\nexport function createCorePulumiApp(projectAppParams: CreateCorePulumiAppParams = {}) {\n return baseCreateCorePulumiApp({\n ...projectAppParams,\n // If using existing VPC, we ensure `vpc` param is set to `false`.\n vpc: ({ getParam }) => {\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n return usingAdvancedVpcParams && vpc.useExistingVpc ? false : Boolean(vpc);\n },\n pulumi(...args) {\n const [app] = args;\n const { getParam } = app;\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n\n // Not using advanced VPC params? Then immediately exit.\n if (!usingAdvancedVpcParams) {\n return projectAppParams.pulumi?.(...args);\n }\n\n const [{ resources, addResource, onResource }] = args;\n const { useExistingVpc, useVpcEndpoints } = vpc;\n\n // 1. We first deal with \"existing VPC\" setup.\n if (useExistingVpc) {\n if (\"useVpcEndpoints\" in vpc) {\n throw new Error(\n \"Cannot specify `useVpcEndpoints` parameter when using an existing VPC. The VPC endpoints configurations should be already defined within the existing VPC.\"\n );\n }\n\n if (projectAppParams.elasticSearch) {\n if (!useExistingVpc.elasticSearchDomainVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `elasticSearchDomainVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.elasticsearch.Domain)) {\n resource.config.vpcOptions(\n useExistingVpc!.elasticSearchDomainVpcConfig\n );\n }\n });\n }\n\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n resource.config.vpcConfig(useExistingVpc!.lambdaFunctionsVpcConfig);\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn: aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n\n return projectAppParams.pulumi?.(...args);\n }\n\n // 2. Now we deal with \"non-existing VPC\" setup.\n if (useVpcEndpoints) {\n const region = getAwsRegion(app);\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.ec2.Vpc)) {\n resource.config.enableDnsSupport(true);\n resource.config.enableDnsHostnames(true);\n }\n });\n\n const { vpc, subnets, routeTables } = resources.vpc!;\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-s3-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.s3`,\n routeTableIds: [routeTables.privateSubnets.output.id]\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-dynamodb-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.dynamodb`,\n routeTableIds: [routeTables.privateSubnets.output.id]\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-sqs-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.sqs`,\n vpcEndpointType: \"Interface\",\n privateDnsEnabled: true,\n securityGroupIds: [vpc.output.defaultSecurityGroupId],\n subnetIds: subnets.private.map(subNet => subNet.output.id)\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-events-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.events`,\n vpcEndpointType: \"Interface\",\n privateDnsEnabled: true,\n securityGroupIds: [vpc.output.defaultSecurityGroupId],\n subnetIds: subnets.private.map(subNet => subNet.output.id)\n }\n });\n }\n\n return projectAppParams.pulumi?.(...args);\n }\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["aws","_interopRequireWildcard","require","pulumi","_createCorePulumiApp","_pulumi2","_awsUtils","createCorePulumiApp","projectAppParams","baseCreateCorePulumiApp","_objectSpread2","default","vpc","getParam","usingAdvancedVpcParams","useExistingVpc","Boolean","args","_projectAppParams$pul3","app","_projectAppParams$pul","call","resources","addResource","onResource","useVpcEndpoints","_projectAppParams$pul2","Error","elasticSearch","elasticSearchDomainVpcConfig","resource","isResourceOfType","elasticsearch","Domain","config","vpcOptions","lambdaFunctionsVpcConfig","lambda","Function","canUseVpc","meta","vpcConfig","iam","Role","isLambdaFunctionRole","RolePolicyAttachment","name","role","output","policyArn","ManagedPolicy","AWSLambdaVPCAccessExecutionRole","region","getAwsRegion","ec2","Vpc","enableDnsSupport","enableDnsHostnames","subnets","routeTables","VpcEndpoint","vpcId","id","serviceName","interpolate","routeTableIds","privateSubnets","vpcEndpointType","privateDnsEnabled","securityGroupIds","defaultSecurityGroupId","subnetIds","private","map","subNet"],"sources":["createCorePulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport {\n createCorePulumiApp as baseCreateCorePulumiApp,\n CreateCorePulumiAppParams as BaseCreateCorePulumiAppParams\n} from \"~/apps/core/createCorePulumiApp\";\nimport { isResourceOfType, PulumiAppParam } from \"@webiny/pulumi\";\nimport { getAwsRegion } from \"~/apps/awsUtils\";\n\nexport type CorePulumiApp = ReturnType<typeof createCorePulumiApp>;\n\nexport type CorePulumiAppAdvancedVpcParams = Partial<{\n useVpcEndpoints: boolean;\n useExistingVpc: {\n elasticSearchDomainVpcConfig?: aws.types.input.elasticsearch.DomainVpcOptions;\n lambdaFunctionsVpcConfig: aws.types.input.lambda.FunctionVpcConfig;\n };\n}>;\n\nexport interface CreateCorePulumiAppParams extends Omit<BaseCreateCorePulumiAppParams, \"vpc\"> {\n vpc?: PulumiAppParam<boolean | CorePulumiAppAdvancedVpcParams>;\n}\n\nexport function createCorePulumiApp(projectAppParams: CreateCorePulumiAppParams = {}) {\n return baseCreateCorePulumiApp({\n ...projectAppParams,\n // If using existing VPC, we ensure `vpc` param is set to `false`.\n vpc: ({ getParam }) => {\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n return usingAdvancedVpcParams && vpc.useExistingVpc ? false : Boolean(vpc);\n },\n pulumi(...args) {\n const [app] = args;\n const { getParam } = app;\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n\n // Not using advanced VPC params? Then immediately exit.\n if (!usingAdvancedVpcParams) {\n return projectAppParams.pulumi?.(...args);\n }\n\n const [{ resources, addResource, onResource }] = args;\n const { useExistingVpc, useVpcEndpoints } = vpc;\n\n // 1. We first deal with \"existing VPC\" setup.\n if (useExistingVpc) {\n if (\"useVpcEndpoints\" in vpc) {\n throw new Error(\n \"Cannot specify `useVpcEndpoints` parameter when using an existing VPC. The VPC endpoints configurations should be already defined within the existing VPC.\"\n );\n }\n\n if (projectAppParams.elasticSearch) {\n if (!useExistingVpc.elasticSearchDomainVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `elasticSearchDomainVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.elasticsearch.Domain)) {\n resource.config.vpcOptions(\n useExistingVpc!.elasticSearchDomainVpcConfig\n );\n }\n });\n }\n\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n const canUseVpc = resource.meta.canUseVpc !== false;\n if (canUseVpc) {\n resource.config.vpcConfig(useExistingVpc!.lambdaFunctionsVpcConfig);\n }\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn: aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n\n return projectAppParams.pulumi?.(...args);\n }\n\n // 2. Now we deal with \"non-existing VPC\" setup.\n if (useVpcEndpoints) {\n const region = getAwsRegion(app);\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.ec2.Vpc)) {\n resource.config.enableDnsSupport(true);\n resource.config.enableDnsHostnames(true);\n }\n });\n\n const { vpc, subnets, routeTables } = resources.vpc!;\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-s3-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.s3`,\n routeTableIds: [routeTables.privateSubnets.output.id]\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-dynamodb-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.dynamodb`,\n routeTableIds: [routeTables.privateSubnets.output.id]\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-sqs-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.sqs`,\n vpcEndpointType: \"Interface\",\n privateDnsEnabled: true,\n securityGroupIds: [vpc.output.defaultSecurityGroupId],\n subnetIds: subnets.private.map(subNet => subNet.output.id)\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-events-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.events`,\n vpcEndpointType: \"Interface\",\n privateDnsEnabled: true,\n securityGroupIds: [vpc.output.defaultSecurityGroupId],\n subnetIds: subnets.private.map(subNet => subNet.output.id)\n }\n });\n }\n\n return projectAppParams.pulumi?.(...args);\n }\n });\n}\n"],"mappings":"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"}
@@ -46,7 +46,10 @@ function createWebsitePulumiApp(projectAppParams = {}) {
46
46
  }
47
47
  onResource(resource => {
48
48
  if ((0, _pulumi.isResourceOfType)(resource, aws.lambda.Function)) {
49
- resource.config.vpcConfig(useExistingVpc.lambdaFunctionsVpcConfig);
49
+ const canUseVpc = resource.meta.canUseVpc !== false;
50
+ if (canUseVpc) {
51
+ resource.config.vpcConfig(useExistingVpc.lambdaFunctionsVpcConfig);
52
+ }
50
53
  }
51
54
  if ((0, _pulumi.isResourceOfType)(resource, aws.iam.Role)) {
52
55
  if (resource.meta.isLambdaFunctionRole) {
@@ -64,6 +67,4 @@ function createWebsitePulumiApp(projectAppParams = {}) {
64
67
  return (_projectAppParams$pul2 = projectAppParams.pulumi) === null || _projectAppParams$pul2 === void 0 ? void 0 : _projectAppParams$pul2.call(projectAppParams, ...args);
65
68
  }
66
69
  }));
67
- }
68
-
69
- //# sourceMappingURL=createWebsitePulumiApp.js.map
70
+ }
@@ -1 +1 @@
1
- {"version":3,"names":["aws","_interopRequireWildcard","require","_createWebsitePulumiApp","_pulumi","createWebsitePulumiApp","projectAppParams","baseCreateWebsitePulumiApp","_objectSpread2","default","vpc","getParam","usingAdvancedVpcParams","useExistingVpc","Boolean","pulumi","args","_projectAppParams$pul2","_projectAppParams$pul","call","onResource","addResource","lambdaFunctionsVpcConfig","Error","resource","isResourceOfType","lambda","Function","config","vpcConfig","iam","Role","meta","isLambdaFunctionRole","RolePolicyAttachment","name","role","output","policyArn","ManagedPolicy","AWSLambdaVPCAccessExecutionRole"],"sources":["createWebsitePulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport {\n createWebsitePulumiApp as baseCreateWebsitePulumiApp,\n CreateWebsitePulumiAppParams as BaseCreateWebsitePulumiAppParams\n} from \"~/apps/website/createWebsitePulumiApp\";\nimport { isResourceOfType, PulumiAppParam } from \"@webiny/pulumi\";\n\nexport type WebsitePulumiApp = ReturnType<typeof createWebsitePulumiApp>;\n\nexport type WebsitePulumiAppAdvancedVpcParams = Partial<{\n useExistingVpc: {\n lambdaFunctionsVpcConfig: aws.types.input.lambda.FunctionVpcConfig;\n };\n}>;\n\nexport interface CreateWebsitePulumiAppParams\n extends Omit<BaseCreateWebsitePulumiAppParams, \"vpc\"> {\n vpc?: PulumiAppParam<boolean | WebsitePulumiAppAdvancedVpcParams>;\n}\n\nexport function createWebsitePulumiApp(projectAppParams: CreateWebsitePulumiAppParams = {}) {\n return baseCreateWebsitePulumiApp({\n ...projectAppParams,\n // If using existing VPC, we ensure `vpc` param is set to `false`.\n vpc: ({ getParam }) => {\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n return usingAdvancedVpcParams && vpc.useExistingVpc ? false : Boolean(vpc);\n },\n pulumi(...args) {\n const [{ getParam }] = args;\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n\n // Not using advanced VPC params? Then immediately exit.\n if (!usingAdvancedVpcParams) {\n return projectAppParams.pulumi?.(...args);\n }\n\n const [{ onResource, addResource }] = args;\n const { useExistingVpc } = vpc;\n\n if (useExistingVpc) {\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n resource.config.vpcConfig(useExistingVpc!.lambdaFunctionsVpcConfig);\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn: aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n }\n\n return projectAppParams.pulumi?.(...args);\n }\n });\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAIA,IAAAE,OAAA,GAAAF,OAAA;AAeO,SAASG,sBAAsBA,CAACC,gBAA8C,GAAG,CAAC,CAAC,EAAE;EACxF,OAAO,IAAAC,8CAA0B,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC1BH,gBAAgB;IACnB;IACAI,GAAG,EAAEA,CAAC;MAAEC;IAAS,CAAC,KAAK;MACnB,MAAMD,GAAG,GAAGC,QAAQ,CAACL,gBAAgB,CAACI,GAAG,CAAC;MAC1C,MAAME,sBAAsB,GAAGF,GAAG,IAAI,OAAOA,GAAG,KAAK,SAAS;MAC9D,OAAOE,sBAAsB,IAAIF,GAAG,CAACG,cAAc,GAAG,KAAK,GAAGC,OAAO,CAACJ,GAAG,CAAC;IAC9E,CAAC;IACDK,MAAMA,CAAC,GAAGC,IAAI,EAAE;MAAA,IAAAC,sBAAA;MACZ,MAAM,CAAC;QAAEN;MAAS,CAAC,CAAC,GAAGK,IAAI;MAC3B,MAAMN,GAAG,GAAGC,QAAQ,CAACL,gBAAgB,CAACI,GAAG,CAAC;MAC1C,MAAME,sBAAsB,GAAGF,GAAG,IAAI,OAAOA,GAAG,KAAK,SAAS;;MAE9D;MACA,IAAI,CAACE,sBAAsB,EAAE;QAAA,IAAAM,qBAAA;QACzB,QAAAA,qBAAA,GAAOZ,gBAAgB,CAACS,MAAM,cAAAG,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAAb,gBAAgB,EAAU,GAAGU,IAAI,CAAC;MAC7C;MAEA,MAAM,CAAC;QAAEI,UAAU;QAAEC;MAAY,CAAC,CAAC,GAAGL,IAAI;MAC1C,MAAM;QAAEH;MAAe,CAAC,GAAGH,GAAG;MAE9B,IAAIG,cAAc,EAAE;QAChB,IAAI,CAACA,cAAc,CAACS,wBAAwB,EAAE;UAC1C,MAAM,IAAIC,KAAK,CACX,6GACJ,CAAC;QACL;QAEAH,UAAU,CAACI,QAAQ,IAAI;UACnB,IAAI,IAAAC,wBAAgB,EAACD,QAAQ,EAAExB,GAAG,CAAC0B,MAAM,CAACC,QAAQ,CAAC,EAAE;YACjDH,QAAQ,CAACI,MAAM,CAACC,SAAS,CAAChB,cAAc,CAAES,wBAAwB,CAAC;UACvE;UAEA,IAAI,IAAAG,wBAAgB,EAACD,QAAQ,EAAExB,GAAG,CAAC8B,GAAG,CAACC,IAAI,CAAC,EAAE;YAC1C,IAAIP,QAAQ,CAACQ,IAAI,CAACC,oBAAoB,EAAE;cACpCZ,WAAW,CAACrB,GAAG,CAAC8B,GAAG,CAACI,oBAAoB,EAAE;gBACtCC,IAAI,EAAG,GAAEX,QAAQ,CAACW,IAAK,4BAA2B;gBAClDP,MAAM,EAAE;kBACJQ,IAAI,EAAEZ,QAAQ,CAACa,MAAM,CAACF,IAAI;kBAC1BG,SAAS,EAAEtC,GAAG,CAAC8B,GAAG,CAACS,aAAa,CAACC;gBACrC;cACJ,CAAC,CAAC;YACN;UACJ;QACJ,CAAC,CAAC;MACN;MAEA,QAAAvB,sBAAA,GAAOX,gBAAgB,CAACS,MAAM,cAAAE,sBAAA,uBAAvBA,sBAAA,CAAAE,IAAA,CAAAb,gBAAgB,EAAU,GAAGU,IAAI,CAAC;IAC7C;EAAC,EACJ,CAAC;AACN"}
1
+ {"version":3,"names":["aws","_interopRequireWildcard","require","_createWebsitePulumiApp","_pulumi","createWebsitePulumiApp","projectAppParams","baseCreateWebsitePulumiApp","_objectSpread2","default","vpc","getParam","usingAdvancedVpcParams","useExistingVpc","Boolean","pulumi","args","_projectAppParams$pul2","_projectAppParams$pul","call","onResource","addResource","lambdaFunctionsVpcConfig","Error","resource","isResourceOfType","lambda","Function","canUseVpc","meta","config","vpcConfig","iam","Role","isLambdaFunctionRole","RolePolicyAttachment","name","role","output","policyArn","ManagedPolicy","AWSLambdaVPCAccessExecutionRole"],"sources":["createWebsitePulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport {\n createWebsitePulumiApp as baseCreateWebsitePulumiApp,\n CreateWebsitePulumiAppParams as BaseCreateWebsitePulumiAppParams\n} from \"~/apps/website/createWebsitePulumiApp\";\nimport { isResourceOfType, PulumiAppParam } from \"@webiny/pulumi\";\n\nexport type WebsitePulumiApp = ReturnType<typeof createWebsitePulumiApp>;\n\nexport type WebsitePulumiAppAdvancedVpcParams = Partial<{\n useExistingVpc: {\n lambdaFunctionsVpcConfig: aws.types.input.lambda.FunctionVpcConfig;\n };\n}>;\n\nexport interface CreateWebsitePulumiAppParams\n extends Omit<BaseCreateWebsitePulumiAppParams, \"vpc\"> {\n vpc?: PulumiAppParam<boolean | WebsitePulumiAppAdvancedVpcParams>;\n}\n\nexport function createWebsitePulumiApp(projectAppParams: CreateWebsitePulumiAppParams = {}) {\n return baseCreateWebsitePulumiApp({\n ...projectAppParams,\n // If using existing VPC, we ensure `vpc` param is set to `false`.\n vpc: ({ getParam }) => {\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n return usingAdvancedVpcParams && vpc.useExistingVpc ? false : Boolean(vpc);\n },\n pulumi(...args) {\n const [{ getParam }] = args;\n const vpc = getParam(projectAppParams.vpc);\n const usingAdvancedVpcParams = vpc && typeof vpc !== \"boolean\";\n\n // Not using advanced VPC params? Then immediately exit.\n if (!usingAdvancedVpcParams) {\n return projectAppParams.pulumi?.(...args);\n }\n\n const [{ onResource, addResource }] = args;\n const { useExistingVpc } = vpc;\n\n if (useExistingVpc) {\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n const canUseVpc = resource.meta.canUseVpc !== false;\n if (canUseVpc) {\n resource.config.vpcConfig(useExistingVpc!.lambdaFunctionsVpcConfig);\n }\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn: aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n }\n\n return projectAppParams.pulumi?.(...args);\n }\n });\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAIA,IAAAE,OAAA,GAAAF,OAAA;AAeO,SAASG,sBAAsBA,CAACC,gBAA8C,GAAG,CAAC,CAAC,EAAE;EACxF,OAAO,IAAAC,8CAA0B,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAC1BH,gBAAgB;IACnB;IACAI,GAAG,EAAEA,CAAC;MAAEC;IAAS,CAAC,KAAK;MACnB,MAAMD,GAAG,GAAGC,QAAQ,CAACL,gBAAgB,CAACI,GAAG,CAAC;MAC1C,MAAME,sBAAsB,GAAGF,GAAG,IAAI,OAAOA,GAAG,KAAK,SAAS;MAC9D,OAAOE,sBAAsB,IAAIF,GAAG,CAACG,cAAc,GAAG,KAAK,GAAGC,OAAO,CAACJ,GAAG,CAAC;IAC9E,CAAC;IACDK,MAAMA,CAAC,GAAGC,IAAI,EAAE;MAAA,IAAAC,sBAAA;MACZ,MAAM,CAAC;QAAEN;MAAS,CAAC,CAAC,GAAGK,IAAI;MAC3B,MAAMN,GAAG,GAAGC,QAAQ,CAACL,gBAAgB,CAACI,GAAG,CAAC;MAC1C,MAAME,sBAAsB,GAAGF,GAAG,IAAI,OAAOA,GAAG,KAAK,SAAS;;MAE9D;MACA,IAAI,CAACE,sBAAsB,EAAE;QAAA,IAAAM,qBAAA;QACzB,QAAAA,qBAAA,GAAOZ,gBAAgB,CAACS,MAAM,cAAAG,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAAb,gBAAgB,EAAU,GAAGU,IAAI,CAAC;MAC7C;MAEA,MAAM,CAAC;QAAEI,UAAU;QAAEC;MAAY,CAAC,CAAC,GAAGL,IAAI;MAC1C,MAAM;QAAEH;MAAe,CAAC,GAAGH,GAAG;MAE9B,IAAIG,cAAc,EAAE;QAChB,IAAI,CAACA,cAAc,CAACS,wBAAwB,EAAE;UAC1C,MAAM,IAAIC,KAAK,CACX,6GACJ,CAAC;QACL;QAEAH,UAAU,CAACI,QAAQ,IAAI;UACnB,IAAI,IAAAC,wBAAgB,EAACD,QAAQ,EAAExB,GAAG,CAAC0B,MAAM,CAACC,QAAQ,CAAC,EAAE;YACjD,MAAMC,SAAS,GAAGJ,QAAQ,CAACK,IAAI,CAACD,SAAS,KAAK,KAAK;YACnD,IAAIA,SAAS,EAAE;cACXJ,QAAQ,CAACM,MAAM,CAACC,SAAS,CAAClB,cAAc,CAAES,wBAAwB,CAAC;YACvE;UACJ;UAEA,IAAI,IAAAG,wBAAgB,EAACD,QAAQ,EAAExB,GAAG,CAACgC,GAAG,CAACC,IAAI,CAAC,EAAE;YAC1C,IAAIT,QAAQ,CAACK,IAAI,CAACK,oBAAoB,EAAE;cACpCb,WAAW,CAACrB,GAAG,CAACgC,GAAG,CAACG,oBAAoB,EAAE;gBACtCC,IAAI,EAAG,GAAEZ,QAAQ,CAACY,IAAK,4BAA2B;gBAClDN,MAAM,EAAE;kBACJO,IAAI,EAAEb,QAAQ,CAACc,MAAM,CAACF,IAAI;kBAC1BG,SAAS,EAAEvC,GAAG,CAACgC,GAAG,CAACQ,aAAa,CAACC;gBACrC;cACJ,CAAC,CAAC;YACN;UACJ;QACJ,CAAC,CAAC;MACN;MAEA,QAAAxB,sBAAA,GAAOX,gBAAgB,CAACS,MAAM,cAAAE,sBAAA,uBAAvBA,sBAAA,CAAAE,IAAA,CAAAb,gBAAgB,EAAU,GAAGU,IAAI,CAAC;IAC7C;EAAC,EACJ,CAAC;AACN"}
@@ -46,6 +46,4 @@ Object.keys(_createWebsitePulumiApp).forEach(function (key) {
46
46
  return _createWebsitePulumiApp[key];
47
47
  }
48
48
  });
49
- });
50
-
51
- //# sourceMappingURL=index.js.map
49
+ });
package/index.js CHANGED
@@ -36,6 +36,4 @@ Object.keys(_utils).forEach(function (key) {
36
36
  return _utils[key];
37
37
  }
38
38
  });
39
- });
40
-
41
- //# sourceMappingURL=index.js.map
39
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/pulumi-aws",
3
- "version": "5.37.3-beta.0",
3
+ "version": "5.37.3-beta.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/webiny/webiny-js.git"
@@ -15,8 +15,8 @@
15
15
  "dependencies": {
16
16
  "@pulumi/aws": "^5.8.0",
17
17
  "@pulumi/pulumi": "^3.34.0",
18
- "@webiny/cli-plugin-deploy-pulumi": "5.37.3-beta.0",
19
- "@webiny/pulumi": "5.37.3-beta.0",
18
+ "@webiny/cli-plugin-deploy-pulumi": "5.37.3-beta.1",
19
+ "@webiny/pulumi": "5.37.3-beta.1",
20
20
  "form-data": "4.0.0",
21
21
  "node-fetch": "2.6.9"
22
22
  },
@@ -26,10 +26,10 @@
26
26
  "@babel/preset-env": "7.22.7",
27
27
  "@babel/preset-typescript": "7.22.5",
28
28
  "@babel/runtime": "7.22.6",
29
- "@webiny/api-page-builder": "5.37.3-beta.0",
30
- "@webiny/aws-layers": "5.37.3-beta.0",
31
- "@webiny/cli": "5.37.3-beta.0",
32
- "@webiny/project-utils": "5.37.3-beta.0",
29
+ "@webiny/api-page-builder": "5.37.3-beta.1",
30
+ "@webiny/aws-layers": "5.37.3-beta.1",
31
+ "@webiny/cli": "5.37.3-beta.1",
32
+ "@webiny/project-utils": "5.37.3-beta.1",
33
33
  "chalk": "4.1.2",
34
34
  "lodash": "4.17.21",
35
35
  "mime": "2.6.0",
@@ -49,5 +49,5 @@
49
49
  ]
50
50
  }
51
51
  },
52
- "gitHead": "5dbaca4f2294bd7a6718ece14752f5f554d0d842"
52
+ "gitHead": "59d377132f34c76cb198cd0f0eee211a56ca25b7"
53
53
  }
@@ -43,6 +43,4 @@ const addDomainsUrlsOutputs = params => {
43
43
  return aliases;
44
44
  });
45
45
  };
46
- exports.addDomainsUrlsOutputs = addDomainsUrlsOutputs;
47
-
48
- //# sourceMappingURL=addDomainsUrlsOutputs.js.map
46
+ exports.addDomainsUrlsOutputs = addDomainsUrlsOutputs;
@@ -22,6 +22,4 @@ const crawlDirectory = (dir, callback) => {
22
22
  }
23
23
  }
24
24
  };
25
- exports.crawlDirectory = crawlDirectory;
26
-
27
- //# sourceMappingURL=crawlDirectory.js.map
25
+ exports.crawlDirectory = crawlDirectory;
@@ -36,6 +36,4 @@ const getPresignedPost = async ({
36
36
  const s3 = new _s.default();
37
37
  return s3.createPresignedPost(s3Params);
38
38
  };
39
- exports.getPresignedPost = getPresignedPost;
40
-
41
- //# sourceMappingURL=getPresignedPost.js.map
39
+ exports.getPresignedPost = getPresignedPost;
package/utils/index.js CHANGED
@@ -55,6 +55,4 @@ Object.keys(_uploadFolderToS).forEach(function (key) {
55
55
  }
56
56
  });
57
57
  });
58
- var _lambdaEnvVariables = require("./lambdaEnvVariables");
59
-
60
- //# sourceMappingURL=index.js.map
58
+ var _lambdaEnvVariables = require("./lambdaEnvVariables");
@@ -65,6 +65,4 @@ function withCommonLambdaEnvVariables(app) {
65
65
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, app), {}, {
66
66
  setCommonLambdaEnvVariables
67
67
  });
68
- }
69
-
70
- //# sourceMappingURL=lambdaEnvVariables.js.map
68
+ }
@@ -289,6 +289,4 @@
289
289
  // }
290
290
  // }
291
291
  // }
292
- "use strict";
293
-
294
- //# sourceMappingURL=storageMigrate.js.map
292
+ "use strict";
@@ -33,6 +33,4 @@ function isTaggable(resourceType) {
33
33
  }
34
34
 
35
35
  // A list of known AWS type tokens that are taggable.
36
- const taggableResourceTypes = new Set(["aws:accessanalyzer/analyzer:Analyzer", "aws:acm/certificate:Certificate", "aws:acmpca/certificateAuthority:CertificateAuthority", "aws:alb/loadBalancer:LoadBalancer", "aws:alb/targetGroup:TargetGroup", "aws:apigateway/apiKey:ApiKey", "aws:apigateway/clientCertificate:ClientCertificate", "aws:apigateway/domainName:DomainName", "aws:apigateway/restApi:RestApi", "aws:apigateway/stage:Stage", "aws:apigateway/usagePlan:UsagePlan", "aws:apigateway/vpcLink:VpcLink", "aws:apigatewayv2/api:Api", "aws:apigatewayv2/stage:Stage", "aws:applicationloadbalancing/loadBalancer:LoadBalancer", "aws:applicationloadbalancing/targetGroup:TargetGroup", "aws:appmesh/mesh:Mesh", "aws:appmesh/route:Route", "aws:appmesh/virtualNode:VirtualNode", "aws:appmesh/virtualRouter:VirtualRouter", "aws:appmesh/virtualService:VirtualService", "aws:appsync/graphQLApi:GraphQLApi", "aws:athena/workgroup:Workgroup", "aws:autoscaling/group:Group", "aws:backup/plan:Plan", "aws:backup/vault:Vault", "aws:cfg/aggregateAuthorization:AggregateAuthorization", "aws:cfg/configurationAggregator:ConfigurationAggregator", "aws:cfg/rule:Rule", "aws:cloudformation/stack:Stack", "aws:cloudformation/stackSet:StackSet", "aws:cloudfront/distribution:Distribution", "aws:cloudhsmv2/cluster:Cluster", "aws:cloudtrail/trail:Trail", "aws:cloudwatch/eventRule:EventRule", "aws:cloudwatch/logGroup:LogGroup", "aws:cloudwatch/metricAlarm:MetricAlarm", "aws:codebuild/project:Project", "aws:codecommit/repository:Repository", "aws:codepipeline/pipeline:Pipeline", "aws:codepipeline/webhook:Webhook", "aws:codestarnotifications/notificationRule:NotificationRule", "aws:cognito/identityPool:IdentityPool", "aws:cognito/userPool:UserPool", "aws:datapipeline/pipeline:Pipeline", "aws:datasync/agent:Agent", "aws:datasync/efsLocation:EfsLocation", "aws:datasync/locationSmb:LocationSmb", "aws:datasync/nfsLocation:NfsLocation", "aws:datasync/s3Location:S3Location", "aws:datasync/task:Task", "aws:dax/cluster:Cluster", "aws:directconnect/connection:Connection", "aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter", "aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter", "aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor", "aws:directconnect/linkAggregationGroup:LinkAggregationGroup", "aws:directconnect/privateVirtualInterface:PrivateVirtualInterface", "aws:directconnect/publicVirtualInterface:PublicVirtualInterface", "aws:directconnect/transitVirtualInterface:TransitVirtualInterface", "aws:directoryservice/directory:Directory", "aws:dlm/lifecyclePolicy:LifecyclePolicy", "aws:dms/endpoint:Endpoint", "aws:dms/replicationInstance:ReplicationInstance", "aws:dms/replicationSubnetGroup:ReplicationSubnetGroup", "aws:dms/replicationTask:ReplicationTask", "aws:docdb/cluster:Cluster", "aws:docdb/clusterInstance:ClusterInstance", "aws:docdb/clusterParameterGroup:ClusterParameterGroup", "aws:docdb/subnetGroup:SubnetGroup", "aws:dynamodb/table:Table", "aws:ebs/snapshot:Snapshot", "aws:ebs/snapshotCopy:SnapshotCopy", "aws:ebs/volume:Volume", "aws:ec2/ami:Ami", "aws:ec2/amiCopy:AmiCopy", "aws:ec2/amiFromInstance:AmiFromInstance", "aws:ec2/capacityReservation:CapacityReservation", "aws:ec2/customerGateway:CustomerGateway", "aws:ec2/defaultNetworkAcl:DefaultNetworkAcl", "aws:ec2/defaultRouteTable:DefaultRouteTable", "aws:ec2/defaultSecurityGroup:DefaultSecurityGroup", "aws:ec2/defaultSubnet:DefaultSubnet", "aws:ec2/defaultVpc:DefaultVpc", "aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions", "aws:ec2/eip:Eip", "aws:ec2/fleet:Fleet", "aws:ec2/instance:Instance", "aws:ec2/internetGateway:InternetGateway", "aws:ec2/keyPair:KeyPair", "aws:ec2/launchTemplate:LaunchTemplate", "aws:ec2/natGateway:NatGateway", "aws:ec2/networkAcl:NetworkAcl", "aws:ec2/networkInterface:NetworkInterface", "aws:ec2/placementGroup:PlacementGroup", "aws:ec2/routeTable:RouteTable", "aws:ec2/securityGroup:SecurityGroup", "aws:ec2/spotInstanceRequest:SpotInstanceRequest", "aws:ec2/subnet:Subnet", "aws:ec2/vpc:Vpc", "aws:ec2/vpcDhcpOptions:VpcDhcpOptions", "aws:ec2/vpcEndpoint:VpcEndpoint", "aws:ec2/vpcEndpointService:VpcEndpointService", "aws:ec2/vpcPeeringConnection:VpcPeeringConnection", "aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter", "aws:ec2/vpnConnection:VpnConnection", "aws:ec2/vpnGateway:VpnGateway", "aws:ec2clientvpn/endpoint:Endpoint", "aws:ec2transitgateway/routeTable:RouteTable", "aws:ec2transitgateway/transitGateway:TransitGateway", "aws:ec2transitgateway/vpcAttachment:VpcAttachment", "aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter", "aws:ecr/repository:Repository", "aws:ecs/capacityProvider:CapacityProvider", "aws:ecs/cluster:Cluster", "aws:ecs/service:Service", "aws:ecs/taskDefinition:TaskDefinition", "aws:efs/fileSystem:FileSystem", "aws:eks/cluster:Cluster", "aws:eks/fargateProfile:FargateProfile", "aws:eks/nodeGroup:NodeGroup", "aws:elasticache/cluster:Cluster", "aws:elasticache/replicationGroup:ReplicationGroup", "aws:elasticbeanstalk/application:Application", "aws:elasticbeanstalk/applicationVersion:ApplicationVersion", "aws:elasticbeanstalk/environment:Environment", "aws:elasticloadbalancing/loadBalancer:LoadBalancer", "aws:elasticloadbalancingv2/loadBalancer:LoadBalancer", "aws:elasticloadbalancingv2/targetGroup:TargetGroup", "aws:elasticsearch/domain:Domain", "aws:elb/loadBalancer:LoadBalancer", "aws:emr/cluster:Cluster", "aws:fsx/lustreFileSystem:LustreFileSystem", "aws:fsx/windowsFileSystem:WindowsFileSystem", "aws:gamelift/alias:Alias", "aws:gamelift/build:Build", "aws:gamelift/fleet:Fleet", "aws:gamelift/gameSessionQueue:GameSessionQueue", "aws:glacier/vault:Vault", "aws:glue/crawler:Crawler", "aws:glue/job:Job", "aws:glue/trigger:Trigger", "aws:iam/role:Role", "aws:iam/user:User", "aws:inspector/resourceGroup:ResourceGroup", "aws:kinesis/analyticsApplication:AnalyticsApplication", "aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream", "aws:kinesis/stream:Stream", "aws:kms/externalKey:ExternalKey", "aws:kms/key:Key", "aws:lambda/function:Function", "aws:lb/loadBalancer:LoadBalancer", "aws:lb/targetGroup:TargetGroup", "aws:licensemanager/licenseConfiguration:LicenseConfiguration", "aws:lightsail/instance:Instance", "aws:mediaconvert/queue:Queue", "aws:mediapackage/channel:Channel", "aws:mediastore/container:Container", "aws:mq/broker:Broker", "aws:mq/configuration:Configuration", "aws:msk/cluster:Cluster", "aws:neptune/cluster:Cluster", "aws:neptune/clusterInstance:ClusterInstance", "aws:neptune/clusterParameterGroup:ClusterParameterGroup", "aws:neptune/eventSubscription:EventSubscription", "aws:neptune/parameterGroup:ParameterGroup", "aws:neptune/subnetGroup:SubnetGroup", "aws:opsworks/stack:Stack", "aws:organizations/account:Account", "aws:pinpoint/app:App", "aws:qldb/ledger:Ledger", "aws:ram/resourceShare:ResourceShare", "aws:rds/cluster:Cluster", "aws:rds/clusterEndpoint:ClusterEndpoint", "aws:rds/clusterInstance:ClusterInstance", "aws:rds/clusterParameterGroup:ClusterParameterGroup", "aws:rds/clusterSnapshot:ClusterSnapshot", "aws:rds/eventSubscription:EventSubscription", "aws:rds/instance:Instance", "aws:rds/optionGroup:OptionGroup", "aws:rds/parameterGroup:ParameterGroup", "aws:rds/securityGroup:SecurityGroup", "aws:rds/snapshot:Snapshot", "aws:rds/subnetGroup:SubnetGroup", "aws:redshift/cluster:Cluster", "aws:redshift/eventSubscription:EventSubscription", "aws:redshift/parameterGroup:ParameterGroup", "aws:redshift/snapshotCopyGrant:SnapshotCopyGrant", "aws:redshift/snapshotSchedule:SnapshotSchedule", "aws:redshift/subnetGroup:SubnetGroup", "aws:resourcegroups/group:Group", "aws:route53/healthCheck:HealthCheck", "aws:route53/resolverEndpoint:ResolverEndpoint", "aws:route53/resolverRule:ResolverRule", "aws:route53/zone:Zone", "aws:s3/bucket:Bucket", "aws:s3/bucketObject:BucketObject", "aws:sagemaker/endpoint:Endpoint", "aws:sagemaker/endpointConfiguration:EndpointConfiguration", "aws:sagemaker/model:Model", "aws:sagemaker/notebookInstance:NotebookInstance", "aws:secretsmanager/secret:Secret", "aws:servicecatalog/portfolio:Portfolio", "aws:sfn/activity:Activity", "aws:sfn/stateMachine:StateMachine", "aws:sns/topic:Topic", "aws:sqs/queue:Queue", "aws:ssm/activation:Activation", "aws:ssm/document:Document", "aws:ssm/maintenanceWindow:MaintenanceWindow", "aws:ssm/parameter:Parameter", "aws:ssm/patchBaseline:PatchBaseline", "aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume", "aws:storagegateway/gateway:Gateway", "aws:storagegateway/nfsFileShare:NfsFileShare", "aws:storagegateway/smbFileShare:SmbFileShare", "aws:swf/domain:Domain", "aws:transfer/server:Server", "aws:transfer/user:User", "aws:waf/rateBasedRule:RateBasedRule", "aws:waf/rule:Rule", "aws:waf/ruleGroup:RuleGroup", "aws:waf/webAcl:WebAcl", "aws:wafregional/rateBasedRule:RateBasedRule", "aws:wafregional/rule:Rule", "aws:wafregional/ruleGroup:RuleGroup", "aws:wafregional/webAcl:WebAcl", "aws:workspaces/directory:Directory", "aws:workspaces/ipGroup:IpGroup"]);
37
-
38
- //# sourceMappingURL=tagResources.js.map
36
+ const taggableResourceTypes = new Set(["aws:accessanalyzer/analyzer:Analyzer", "aws:acm/certificate:Certificate", "aws:acmpca/certificateAuthority:CertificateAuthority", "aws:alb/loadBalancer:LoadBalancer", "aws:alb/targetGroup:TargetGroup", "aws:apigateway/apiKey:ApiKey", "aws:apigateway/clientCertificate:ClientCertificate", "aws:apigateway/domainName:DomainName", "aws:apigateway/restApi:RestApi", "aws:apigateway/stage:Stage", "aws:apigateway/usagePlan:UsagePlan", "aws:apigateway/vpcLink:VpcLink", "aws:apigatewayv2/api:Api", "aws:apigatewayv2/stage:Stage", "aws:applicationloadbalancing/loadBalancer:LoadBalancer", "aws:applicationloadbalancing/targetGroup:TargetGroup", "aws:appmesh/mesh:Mesh", "aws:appmesh/route:Route", "aws:appmesh/virtualNode:VirtualNode", "aws:appmesh/virtualRouter:VirtualRouter", "aws:appmesh/virtualService:VirtualService", "aws:appsync/graphQLApi:GraphQLApi", "aws:athena/workgroup:Workgroup", "aws:autoscaling/group:Group", "aws:backup/plan:Plan", "aws:backup/vault:Vault", "aws:cfg/aggregateAuthorization:AggregateAuthorization", "aws:cfg/configurationAggregator:ConfigurationAggregator", "aws:cfg/rule:Rule", "aws:cloudformation/stack:Stack", "aws:cloudformation/stackSet:StackSet", "aws:cloudfront/distribution:Distribution", "aws:cloudhsmv2/cluster:Cluster", "aws:cloudtrail/trail:Trail", "aws:cloudwatch/eventRule:EventRule", "aws:cloudwatch/logGroup:LogGroup", "aws:cloudwatch/metricAlarm:MetricAlarm", "aws:codebuild/project:Project", "aws:codecommit/repository:Repository", "aws:codepipeline/pipeline:Pipeline", "aws:codepipeline/webhook:Webhook", "aws:codestarnotifications/notificationRule:NotificationRule", "aws:cognito/identityPool:IdentityPool", "aws:cognito/userPool:UserPool", "aws:datapipeline/pipeline:Pipeline", "aws:datasync/agent:Agent", "aws:datasync/efsLocation:EfsLocation", "aws:datasync/locationSmb:LocationSmb", "aws:datasync/nfsLocation:NfsLocation", "aws:datasync/s3Location:S3Location", "aws:datasync/task:Task", "aws:dax/cluster:Cluster", "aws:directconnect/connection:Connection", "aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter", "aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter", "aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor", "aws:directconnect/linkAggregationGroup:LinkAggregationGroup", "aws:directconnect/privateVirtualInterface:PrivateVirtualInterface", "aws:directconnect/publicVirtualInterface:PublicVirtualInterface", "aws:directconnect/transitVirtualInterface:TransitVirtualInterface", "aws:directoryservice/directory:Directory", "aws:dlm/lifecyclePolicy:LifecyclePolicy", "aws:dms/endpoint:Endpoint", "aws:dms/replicationInstance:ReplicationInstance", "aws:dms/replicationSubnetGroup:ReplicationSubnetGroup", "aws:dms/replicationTask:ReplicationTask", "aws:docdb/cluster:Cluster", "aws:docdb/clusterInstance:ClusterInstance", "aws:docdb/clusterParameterGroup:ClusterParameterGroup", "aws:docdb/subnetGroup:SubnetGroup", "aws:dynamodb/table:Table", "aws:ebs/snapshot:Snapshot", "aws:ebs/snapshotCopy:SnapshotCopy", "aws:ebs/volume:Volume", "aws:ec2/ami:Ami", "aws:ec2/amiCopy:AmiCopy", "aws:ec2/amiFromInstance:AmiFromInstance", "aws:ec2/capacityReservation:CapacityReservation", "aws:ec2/customerGateway:CustomerGateway", "aws:ec2/defaultNetworkAcl:DefaultNetworkAcl", "aws:ec2/defaultRouteTable:DefaultRouteTable", "aws:ec2/defaultSecurityGroup:DefaultSecurityGroup", "aws:ec2/defaultSubnet:DefaultSubnet", "aws:ec2/defaultVpc:DefaultVpc", "aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions", "aws:ec2/eip:Eip", "aws:ec2/fleet:Fleet", "aws:ec2/instance:Instance", "aws:ec2/internetGateway:InternetGateway", "aws:ec2/keyPair:KeyPair", "aws:ec2/launchTemplate:LaunchTemplate", "aws:ec2/natGateway:NatGateway", "aws:ec2/networkAcl:NetworkAcl", "aws:ec2/networkInterface:NetworkInterface", "aws:ec2/placementGroup:PlacementGroup", "aws:ec2/routeTable:RouteTable", "aws:ec2/securityGroup:SecurityGroup", "aws:ec2/spotInstanceRequest:SpotInstanceRequest", "aws:ec2/subnet:Subnet", "aws:ec2/vpc:Vpc", "aws:ec2/vpcDhcpOptions:VpcDhcpOptions", "aws:ec2/vpcEndpoint:VpcEndpoint", "aws:ec2/vpcEndpointService:VpcEndpointService", "aws:ec2/vpcPeeringConnection:VpcPeeringConnection", "aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter", "aws:ec2/vpnConnection:VpnConnection", "aws:ec2/vpnGateway:VpnGateway", "aws:ec2clientvpn/endpoint:Endpoint", "aws:ec2transitgateway/routeTable:RouteTable", "aws:ec2transitgateway/transitGateway:TransitGateway", "aws:ec2transitgateway/vpcAttachment:VpcAttachment", "aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter", "aws:ecr/repository:Repository", "aws:ecs/capacityProvider:CapacityProvider", "aws:ecs/cluster:Cluster", "aws:ecs/service:Service", "aws:ecs/taskDefinition:TaskDefinition", "aws:efs/fileSystem:FileSystem", "aws:eks/cluster:Cluster", "aws:eks/fargateProfile:FargateProfile", "aws:eks/nodeGroup:NodeGroup", "aws:elasticache/cluster:Cluster", "aws:elasticache/replicationGroup:ReplicationGroup", "aws:elasticbeanstalk/application:Application", "aws:elasticbeanstalk/applicationVersion:ApplicationVersion", "aws:elasticbeanstalk/environment:Environment", "aws:elasticloadbalancing/loadBalancer:LoadBalancer", "aws:elasticloadbalancingv2/loadBalancer:LoadBalancer", "aws:elasticloadbalancingv2/targetGroup:TargetGroup", "aws:elasticsearch/domain:Domain", "aws:elb/loadBalancer:LoadBalancer", "aws:emr/cluster:Cluster", "aws:fsx/lustreFileSystem:LustreFileSystem", "aws:fsx/windowsFileSystem:WindowsFileSystem", "aws:gamelift/alias:Alias", "aws:gamelift/build:Build", "aws:gamelift/fleet:Fleet", "aws:gamelift/gameSessionQueue:GameSessionQueue", "aws:glacier/vault:Vault", "aws:glue/crawler:Crawler", "aws:glue/job:Job", "aws:glue/trigger:Trigger", "aws:iam/role:Role", "aws:iam/user:User", "aws:inspector/resourceGroup:ResourceGroup", "aws:kinesis/analyticsApplication:AnalyticsApplication", "aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream", "aws:kinesis/stream:Stream", "aws:kms/externalKey:ExternalKey", "aws:kms/key:Key", "aws:lambda/function:Function", "aws:lb/loadBalancer:LoadBalancer", "aws:lb/targetGroup:TargetGroup", "aws:licensemanager/licenseConfiguration:LicenseConfiguration", "aws:lightsail/instance:Instance", "aws:mediaconvert/queue:Queue", "aws:mediapackage/channel:Channel", "aws:mediastore/container:Container", "aws:mq/broker:Broker", "aws:mq/configuration:Configuration", "aws:msk/cluster:Cluster", "aws:neptune/cluster:Cluster", "aws:neptune/clusterInstance:ClusterInstance", "aws:neptune/clusterParameterGroup:ClusterParameterGroup", "aws:neptune/eventSubscription:EventSubscription", "aws:neptune/parameterGroup:ParameterGroup", "aws:neptune/subnetGroup:SubnetGroup", "aws:opsworks/stack:Stack", "aws:organizations/account:Account", "aws:pinpoint/app:App", "aws:qldb/ledger:Ledger", "aws:ram/resourceShare:ResourceShare", "aws:rds/cluster:Cluster", "aws:rds/clusterEndpoint:ClusterEndpoint", "aws:rds/clusterInstance:ClusterInstance", "aws:rds/clusterParameterGroup:ClusterParameterGroup", "aws:rds/clusterSnapshot:ClusterSnapshot", "aws:rds/eventSubscription:EventSubscription", "aws:rds/instance:Instance", "aws:rds/optionGroup:OptionGroup", "aws:rds/parameterGroup:ParameterGroup", "aws:rds/securityGroup:SecurityGroup", "aws:rds/snapshot:Snapshot", "aws:rds/subnetGroup:SubnetGroup", "aws:redshift/cluster:Cluster", "aws:redshift/eventSubscription:EventSubscription", "aws:redshift/parameterGroup:ParameterGroup", "aws:redshift/snapshotCopyGrant:SnapshotCopyGrant", "aws:redshift/snapshotSchedule:SnapshotSchedule", "aws:redshift/subnetGroup:SubnetGroup", "aws:resourcegroups/group:Group", "aws:route53/healthCheck:HealthCheck", "aws:route53/resolverEndpoint:ResolverEndpoint", "aws:route53/resolverRule:ResolverRule", "aws:route53/zone:Zone", "aws:s3/bucket:Bucket", "aws:s3/bucketObject:BucketObject", "aws:sagemaker/endpoint:Endpoint", "aws:sagemaker/endpointConfiguration:EndpointConfiguration", "aws:sagemaker/model:Model", "aws:sagemaker/notebookInstance:NotebookInstance", "aws:secretsmanager/secret:Secret", "aws:servicecatalog/portfolio:Portfolio", "aws:sfn/activity:Activity", "aws:sfn/stateMachine:StateMachine", "aws:sns/topic:Topic", "aws:sqs/queue:Queue", "aws:ssm/activation:Activation", "aws:ssm/document:Document", "aws:ssm/maintenanceWindow:MaintenanceWindow", "aws:ssm/parameter:Parameter", "aws:ssm/patchBaseline:PatchBaseline", "aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume", "aws:storagegateway/gateway:Gateway", "aws:storagegateway/nfsFileShare:NfsFileShare", "aws:storagegateway/smbFileShare:SmbFileShare", "aws:swf/domain:Domain", "aws:transfer/server:Server", "aws:transfer/user:User", "aws:waf/rateBasedRule:RateBasedRule", "aws:waf/rule:Rule", "aws:waf/ruleGroup:RuleGroup", "aws:waf/webAcl:WebAcl", "aws:wafregional/rateBasedRule:RateBasedRule", "aws:wafregional/rule:Rule", "aws:wafregional/ruleGroup:RuleGroup", "aws:wafregional/webAcl:WebAcl", "aws:workspaces/directory:Directory", "aws:workspaces/ipGroup:IpGroup"]);
@@ -151,6 +151,4 @@ const uploadFolderToS3 = async ({
151
151
  await Promise.all(promises);
152
152
  }
153
153
  };
154
- exports.uploadFolderToS3 = uploadFolderToS3;
155
-
156
- //# sourceMappingURL=uploadFolderToS3.js.map
154
+ exports.uploadFolderToS3 = uploadFolderToS3;