@webiny/pulumi-aws 5.43.3 → 6.0.0-alpha.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 (189) hide show
  1. package/apps/admin/createAdminPulumiApp.d.ts +3 -2
  2. package/apps/admin/createAdminPulumiApp.js +15 -1
  3. package/apps/admin/createAdminPulumiApp.js.map +1 -1
  4. package/apps/api/ApiApwScheduler.d.ts +1 -1
  5. package/apps/api/ApiApwScheduler.js.map +1 -1
  6. package/apps/api/ApiBackgroundTask.d.ts +1 -1
  7. package/apps/api/ApiBackgroundTask.js.map +1 -1
  8. package/apps/api/ApiCloudfront.d.ts +1 -1
  9. package/apps/api/ApiCloudfront.js.map +1 -1
  10. package/apps/api/ApiFileManager.d.ts +7 -1
  11. package/apps/api/ApiFileManager.js +6 -0
  12. package/apps/api/ApiFileManager.js.map +1 -1
  13. package/apps/api/ApiGateway.d.ts +2 -2
  14. package/apps/api/ApiGateway.js.map +1 -1
  15. package/apps/api/ApiGraphql.d.ts +1 -1
  16. package/apps/api/ApiGraphql.js.map +1 -1
  17. package/apps/api/ApiMigration.d.ts +1 -1
  18. package/apps/api/ApiMigration.js.map +1 -1
  19. package/apps/api/ApiOutput.d.ts +11 -1
  20. package/apps/api/ApiOutput.js +11 -1
  21. package/apps/api/ApiOutput.js.map +1 -1
  22. package/apps/api/ApiPageBuilder.d.ts +1 -1
  23. package/apps/api/ApiPageBuilder.js.map +1 -1
  24. package/apps/api/ApiScheduler.d.ts +8 -0
  25. package/apps/api/ApiScheduler.js +105 -0
  26. package/apps/api/ApiScheduler.js.map +1 -0
  27. package/apps/api/ApiWebsocket.d.ts +1 -1
  28. package/apps/api/ApiWebsocket.js.map +1 -1
  29. package/apps/api/backgroundTask/definition.d.ts +2 -2
  30. package/apps/api/backgroundTask/definition.js.map +1 -1
  31. package/apps/api/backgroundTask/policy.d.ts +2 -2
  32. package/apps/api/backgroundTask/policy.js.map +1 -1
  33. package/apps/api/backgroundTask/role.d.ts +2 -2
  34. package/apps/api/backgroundTask/role.js.map +1 -1
  35. package/apps/api/backgroundTask/types.d.ts +1 -1
  36. package/apps/api/backgroundTask/types.js.map +1 -1
  37. package/apps/api/createApiPulumiApp.d.ts +18 -9
  38. package/apps/api/createApiPulumiApp.js +48 -19
  39. package/apps/api/createApiPulumiApp.js.map +1 -1
  40. package/apps/awsUtils.d.ts +2 -2
  41. package/apps/awsUtils.js.map +1 -1
  42. package/apps/blueGreen/createBlueGreenPulumiApp.d.ts +7 -1
  43. package/apps/blueGreen/createBlueGreenPulumiApp.js +2 -2
  44. package/apps/blueGreen/createBlueGreenPulumiApp.js.map +1 -1
  45. package/apps/blueGreen/domains/attachDomainsToOutput.d.ts +1 -1
  46. package/apps/blueGreen/domains/attachDomainsToOutput.js.map +1 -1
  47. package/apps/blueGreen/types.d.ts +4 -1
  48. package/apps/blueGreen/types.js.map +1 -1
  49. package/apps/common/CoreOutput.d.ts +2 -1
  50. package/apps/common/CoreOutput.js +1 -0
  51. package/apps/common/CoreOutput.js.map +1 -1
  52. package/apps/common/VpcConfig.d.ts +1 -1
  53. package/apps/common/VpcConfig.js.map +1 -1
  54. package/apps/core/CoreCognito.d.ts +1 -1
  55. package/apps/core/CoreCognito.js.map +1 -1
  56. package/apps/core/CoreDynamo.d.ts +1 -1
  57. package/apps/core/CoreDynamo.js.map +1 -1
  58. package/apps/core/CoreElasticSearch.d.ts +1 -1
  59. package/apps/core/CoreElasticSearch.js.map +1 -1
  60. package/apps/core/CoreEventBus.js.map +1 -1
  61. package/apps/core/CoreFileManager.d.ts +1 -1
  62. package/apps/core/CoreFileManager.js.map +1 -1
  63. package/apps/core/CoreOpenSearch.d.ts +1 -1
  64. package/apps/core/CoreOpenSearch.js.map +1 -1
  65. package/apps/core/CoreVpc.d.ts +1 -1
  66. package/apps/core/CoreVpc.js.map +1 -1
  67. package/apps/core/LogDynamo.d.ts +1 -1
  68. package/apps/core/LogDynamo.js.map +1 -1
  69. package/apps/core/WatchCommand.js.map +1 -1
  70. package/apps/core/cognitoIdentityProviders/amazon.d.ts +3 -3
  71. package/apps/core/cognitoIdentityProviders/amazon.js.map +1 -1
  72. package/apps/core/cognitoIdentityProviders/apple.d.ts +3 -3
  73. package/apps/core/cognitoIdentityProviders/apple.js.map +1 -1
  74. package/apps/core/cognitoIdentityProviders/configure.d.ts +3 -3
  75. package/apps/core/cognitoIdentityProviders/configure.js.map +1 -1
  76. package/apps/core/cognitoIdentityProviders/facebook.d.ts +3 -3
  77. package/apps/core/cognitoIdentityProviders/facebook.js.map +1 -1
  78. package/apps/core/cognitoIdentityProviders/getIdpConfig.d.ts +2 -2
  79. package/apps/core/cognitoIdentityProviders/getIdpConfig.js.map +1 -1
  80. package/apps/core/cognitoIdentityProviders/google.d.ts +3 -3
  81. package/apps/core/cognitoIdentityProviders/google.js.map +1 -1
  82. package/apps/core/cognitoIdentityProviders/oidc.d.ts +3 -3
  83. package/apps/core/cognitoIdentityProviders/oidc.js.map +1 -1
  84. package/apps/core/createCorePulumiApp.d.ts +1 -1
  85. package/apps/core/createCorePulumiApp.js +2 -1
  86. package/apps/core/createCorePulumiApp.js.map +1 -1
  87. package/apps/createAppBucket.d.ts +1 -1
  88. package/apps/createAppBucket.js.map +1 -1
  89. package/apps/customDomain.d.ts +3 -3
  90. package/apps/customDomain.js.map +1 -1
  91. package/apps/lambdaUtils.d.ts +3 -2
  92. package/apps/lambdaUtils.js +21 -3
  93. package/apps/lambdaUtils.js.map +1 -1
  94. package/apps/react/createReactPulumiApp.d.ts +2 -2
  95. package/apps/react/createReactPulumiApp.js.map +1 -1
  96. package/apps/syncSystem/SyncSystemDynamo.d.ts +1 -1
  97. package/apps/syncSystem/SyncSystemDynamo.js.map +1 -1
  98. package/apps/syncSystem/SyncSystemDynamoDb.d.ts +3 -0
  99. package/apps/syncSystem/SyncSystemDynamoDb.js +55 -0
  100. package/apps/syncSystem/SyncSystemDynamoDb.js.map +1 -0
  101. package/apps/syncSystem/SyncSystemEventBus.d.ts +6 -0
  102. package/apps/syncSystem/SyncSystemEventBus.js +84 -0
  103. package/apps/syncSystem/SyncSystemEventBus.js.map +1 -0
  104. package/apps/syncSystem/SyncSystemLambda.d.ts +1 -1
  105. package/apps/syncSystem/SyncSystemLambda.js.map +1 -1
  106. package/apps/syncSystem/SyncSystemOutput.d.ts +3 -0
  107. package/apps/syncSystem/SyncSystemOutput.js +26 -0
  108. package/apps/syncSystem/SyncSystemOutput.js.map +1 -0
  109. package/apps/syncSystem/SyncSystemResolverLambda.d.ts +8 -0
  110. package/apps/syncSystem/SyncSystemResolverLambda.js +78 -0
  111. package/apps/syncSystem/SyncSystemResolverLambda.js.map +1 -0
  112. package/apps/syncSystem/SyncSystemSQS.d.ts +3 -4
  113. package/apps/syncSystem/SyncSystemSQS.js +33 -12
  114. package/apps/syncSystem/SyncSystemSQS.js.map +1 -1
  115. package/apps/syncSystem/SyncSystemWorkerLambda.d.ts +7 -0
  116. package/apps/syncSystem/SyncSystemWorkerLambda.js +57 -0
  117. package/apps/syncSystem/SyncSystemWorkerLambda.js.map +1 -0
  118. package/apps/syncSystem/api/addServiceManifest.d.ts +8 -0
  119. package/apps/syncSystem/api/addServiceManifest.js +25 -0
  120. package/apps/syncSystem/api/addServiceManifest.js.map +1 -0
  121. package/apps/syncSystem/api/attachCognitoPermissions.d.ts +14 -0
  122. package/apps/syncSystem/api/attachCognitoPermissions.js +67 -0
  123. package/apps/syncSystem/api/attachCognitoPermissions.js.map +1 -0
  124. package/apps/syncSystem/api/attachDynamoDbPermissions.d.ts +13 -0
  125. package/apps/syncSystem/api/attachDynamoDbPermissions.js +53 -0
  126. package/apps/syncSystem/api/attachDynamoDbPermissions.js.map +1 -0
  127. package/apps/syncSystem/api/attachEventBusPermissions.d.ts +18 -0
  128. package/apps/syncSystem/api/attachEventBusPermissions.js +66 -0
  129. package/apps/syncSystem/api/attachEventBusPermissions.js.map +1 -0
  130. package/apps/syncSystem/api/attachS3Permissions.d.ts +14 -0
  131. package/apps/syncSystem/api/attachS3Permissions.js +59 -0
  132. package/apps/syncSystem/api/attachS3Permissions.js.map +1 -0
  133. package/apps/syncSystem/api/index.d.ts +9 -0
  134. package/apps/syncSystem/api/index.js +65 -0
  135. package/apps/syncSystem/api/index.js.map +1 -0
  136. package/apps/syncSystem/constants.d.ts +1 -0
  137. package/apps/syncSystem/constants.js +9 -0
  138. package/apps/syncSystem/constants.js.map +1 -0
  139. package/apps/syncSystem/createSyncResourceName.d.ts +4 -0
  140. package/apps/syncSystem/createSyncResourceName.js +17 -0
  141. package/apps/syncSystem/createSyncResourceName.js.map +1 -0
  142. package/apps/syncSystem/createSyncSystemPulumiApp.d.ts +19 -10
  143. package/apps/syncSystem/createSyncSystemPulumiApp.js +107 -34
  144. package/apps/syncSystem/createSyncSystemPulumiApp.js.map +1 -1
  145. package/apps/syncSystem/customApp.d.ts +6 -0
  146. package/apps/syncSystem/customApp.js +26 -0
  147. package/apps/syncSystem/customApp.js.map +1 -0
  148. package/apps/syncSystem/getSyncSystemOutput.d.ts +6 -0
  149. package/apps/syncSystem/getSyncSystemOutput.js +28 -0
  150. package/apps/syncSystem/getSyncSystemOutput.js.map +1 -0
  151. package/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.d.ts +7 -0
  152. package/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js +55 -0
  153. package/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js.map +1 -0
  154. package/apps/syncSystem/types.d.ts +55 -0
  155. package/apps/syncSystem/types.js +7 -0
  156. package/apps/syncSystem/types.js.map +1 -0
  157. package/apps/tenantRouter.d.ts +1 -1
  158. package/apps/tenantRouter.js.map +1 -1
  159. package/apps/website/WebsitePrerendering.d.ts +1 -1
  160. package/apps/website/WebsitePrerendering.js.map +1 -1
  161. package/apps/website/createWebsitePulumiApp.d.ts +2 -2
  162. package/apps/website/createWebsitePulumiApp.js.map +1 -1
  163. package/enterprise/api/handleGuardDutyEvents.d.ts +1 -1
  164. package/enterprise/api/handleGuardDutyEvents.js.map +1 -1
  165. package/enterprise/createApiPulumiApp.d.ts +13 -2
  166. package/enterprise/createApiPulumiApp.js.map +1 -1
  167. package/enterprise/createCorePulumiApp.d.ts +2 -2
  168. package/enterprise/createCorePulumiApp.js.map +1 -1
  169. package/enterprise/createSyncSystemPulumiApp.d.ts +13 -8
  170. package/enterprise/createSyncSystemPulumiApp.js +1 -1
  171. package/enterprise/createSyncSystemPulumiApp.js.map +1 -1
  172. package/enterprise/createWebsitePulumiApp.d.ts +2 -2
  173. package/enterprise/createWebsitePulumiApp.js.map +1 -1
  174. package/package.json +12 -12
  175. package/utils/addDomainsUrlsOutputs.d.ts +2 -2
  176. package/utils/addDomainsUrlsOutputs.js.map +1 -1
  177. package/utils/addServiceManifestTableItem.d.ts +1 -1
  178. package/utils/addServiceManifestTableItem.js.map +1 -1
  179. package/utils/createAssetArchive.d.ts +2 -0
  180. package/utils/createAssetArchive.js +16 -0
  181. package/utils/createAssetArchive.js.map +1 -0
  182. package/utils/getPresignedPost.d.ts +1 -1
  183. package/utils/getPresignedPost.js.map +1 -1
  184. package/utils/lambdaEnvVariables.d.ts +1 -1
  185. package/utils/lambdaEnvVariables.js.map +1 -1
  186. package/utils/uploadFolderToS3.d.ts +1 -1
  187. package/utils/uploadFolderToS3.js.map +1 -1
  188. package/utils/withServiceManifest.d.ts +2 -2
  189. package/utils/withServiceManifest.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_path","_interopRequireDefault","require","pulumi","_interopRequireWildcard","aws","_pulumi2","_lambdaUtils","_common","_","_constants","_awsRegion","ApiMigration","exports","createAppModule","name","config","app","core","getModule","CoreOutput","graphql","ApiGraphql","backgroundTask","ApiBackgroundTask","role","createLambdaRole","policy","output","migration","addResource","lambda","Function","handler","timeout","runtime","LAMBDA_RUNTIME","memorySize","arn","description","code","asset","AssetArchive","FileArchive","path","join","paths","workspace","environment","variables","getCommonLambdaEnvVariables","apply","value","COGNITO_REGION","getEnvVariableAwsRegion","COGNITO_USER_POOL_ID","cognitoUserPoolId","DB_TABLE","primaryDynamodbTableName","DB_TABLE_LOG","logDynamodbTableName","DB_TABLE_ELASTICSEARCH","elasticsearchDynamodbTableName","ELASTIC_SEARCH_ENDPOINT","elasticsearchDomainEndpoint","ELASTIC_SEARCH_INDEX_PREFIX","process","env","ELASTICSEARCH_SHARED_INDEXES","S3_BUCKET","fileManagerBucketId","vpcConfig","VpcConfig","functionVpcConfig","stepFunctionPolicy","iam","Policy","Version","Statement","Effect","Action","Resource","interpolate","stepFunction","RolePolicyAttachment","policyArn","function"],"sources":["ApiMigration.ts"],"sourcesContent":["import path from \"path\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport { createAppModule, PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\n\nimport { createLambdaRole, getCommonLambdaEnvVariables } from \"../lambdaUtils\";\nimport { CoreOutput, VpcConfig } from \"../common\";\nimport { ApiBackgroundTask, ApiGraphql } from \"~/apps\";\nimport { LAMBDA_RUNTIME } from \"~/constants\";\nimport { getEnvVariableAwsRegion } from \"~/env/awsRegion\";\n\nexport type ApiMigration = PulumiAppModule<typeof ApiMigration>;\n\nexport const ApiMigration = createAppModule({\n name: \"ApiMigration\",\n config(app: PulumiApp) {\n const core = app.getModule(CoreOutput);\n const graphql = app.getModule(ApiGraphql);\n const backgroundTask = app.getModule(ApiBackgroundTask);\n\n const role = createLambdaRole(app, {\n name: \"migration-lambda-role\",\n policy: graphql.policy.output\n });\n\n const migration = app.addResource(aws.lambda.Function, {\n name: \"data-migration\",\n config: {\n handler: \"handler.handler\",\n timeout: 900,\n runtime: LAMBDA_RUNTIME,\n memorySize: 3008,\n role: role.output.arn,\n description: \"Performs data migrations.\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"migration/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n COGNITO_REGION: getEnvVariableAwsRegion(),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_LOG: core.logDynamodbTableName,\n DB_TABLE_ELASTICSEARCH: core.elasticsearchDynamodbTableName,\n ELASTIC_SEARCH_ENDPOINT: core.elasticsearchDomainEndpoint,\n ELASTIC_SEARCH_INDEX_PREFIX: process.env.ELASTIC_SEARCH_INDEX_PREFIX,\n ELASTICSEARCH_SHARED_INDEXES: process.env.ELASTICSEARCH_SHARED_INDEXES,\n S3_BUCKET: core.fileManagerBucketId\n })) as Record<string, any>\n },\n vpcConfig: app.getModule(VpcConfig).functionVpcConfig\n }\n });\n\n // Add IAM policy to allow states:StartExecution for the background task Step Function\n const stepFunctionPolicy = app.addResource(aws.iam.Policy, {\n name: \"migration-lambda-step-function-policy\",\n config: {\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Effect: \"Allow\",\n Action: [\"states:StartExecution\"],\n Resource: [\n pulumi.interpolate`${backgroundTask.stepFunction.output.arn}`,\n pulumi.interpolate`${backgroundTask.stepFunction.output.arn}/*`\n ]\n }\n ]\n }\n }\n });\n\n // Attach policy to the Lambda role\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: \"migration-lambda-attach-step-function-policy\",\n config: {\n role: role.output.name,\n policyArn: stepFunctionPolicy.output.arn\n }\n });\n\n return {\n function: migration\n };\n }\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_path","_interopRequireDefault","require","pulumi","_interopRequireWildcard","aws","_pulumi2","_lambdaUtils","_common","_","_constants","_awsRegion","ApiMigration","exports","createAppModule","name","config","app","core","getModule","CoreOutput","graphql","ApiGraphql","backgroundTask","ApiBackgroundTask","role","createLambdaRole","policy","output","migration","addResource","lambda","Function","handler","timeout","runtime","LAMBDA_RUNTIME","memorySize","arn","description","code","asset","AssetArchive","FileArchive","path","join","paths","workspace","environment","variables","getCommonLambdaEnvVariables","apply","value","COGNITO_REGION","getEnvVariableAwsRegion","COGNITO_USER_POOL_ID","cognitoUserPoolId","DB_TABLE","primaryDynamodbTableName","DB_TABLE_LOG","logDynamodbTableName","DB_TABLE_ELASTICSEARCH","elasticsearchDynamodbTableName","ELASTIC_SEARCH_ENDPOINT","elasticsearchDomainEndpoint","ELASTIC_SEARCH_INDEX_PREFIX","process","env","ELASTICSEARCH_SHARED_INDEXES","S3_BUCKET","fileManagerBucketId","vpcConfig","VpcConfig","functionVpcConfig","stepFunctionPolicy","iam","Policy","Version","Statement","Effect","Action","Resource","interpolate","stepFunction","RolePolicyAttachment","policyArn","function"],"sources":["ApiMigration.ts"],"sourcesContent":["import path from \"path\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport type { PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\n\nimport { createLambdaRole, getCommonLambdaEnvVariables } from \"../lambdaUtils\";\nimport { CoreOutput, VpcConfig } from \"../common\";\nimport { ApiBackgroundTask, ApiGraphql } from \"~/apps\";\nimport { LAMBDA_RUNTIME } from \"~/constants\";\nimport { getEnvVariableAwsRegion } from \"~/env/awsRegion\";\n\nexport type ApiMigration = PulumiAppModule<typeof ApiMigration>;\n\nexport const ApiMigration = createAppModule({\n name: \"ApiMigration\",\n config(app: PulumiApp) {\n const core = app.getModule(CoreOutput);\n const graphql = app.getModule(ApiGraphql);\n const backgroundTask = app.getModule(ApiBackgroundTask);\n\n const role = createLambdaRole(app, {\n name: \"migration-lambda-role\",\n policy: graphql.policy.output\n });\n\n const migration = app.addResource(aws.lambda.Function, {\n name: \"data-migration\",\n config: {\n handler: \"handler.handler\",\n timeout: 900,\n runtime: LAMBDA_RUNTIME,\n memorySize: 3008,\n role: role.output.arn,\n description: \"Performs data migrations.\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"migration/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n COGNITO_REGION: getEnvVariableAwsRegion(),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_LOG: core.logDynamodbTableName,\n DB_TABLE_ELASTICSEARCH: core.elasticsearchDynamodbTableName,\n ELASTIC_SEARCH_ENDPOINT: core.elasticsearchDomainEndpoint,\n ELASTIC_SEARCH_INDEX_PREFIX: process.env.ELASTIC_SEARCH_INDEX_PREFIX,\n ELASTICSEARCH_SHARED_INDEXES: process.env.ELASTICSEARCH_SHARED_INDEXES,\n S3_BUCKET: core.fileManagerBucketId\n })) as Record<string, any>\n },\n vpcConfig: app.getModule(VpcConfig).functionVpcConfig\n }\n });\n\n // Add IAM policy to allow states:StartExecution for the background task Step Function\n const stepFunctionPolicy = app.addResource(aws.iam.Policy, {\n name: \"migration-lambda-step-function-policy\",\n config: {\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Effect: \"Allow\",\n Action: [\"states:StartExecution\"],\n Resource: [\n pulumi.interpolate`${backgroundTask.stepFunction.output.arn}`,\n pulumi.interpolate`${backgroundTask.stepFunction.output.arn}/*`\n ]\n }\n ]\n }\n }\n });\n\n // Attach policy to the Lambda role\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: \"migration-lambda-attach-step-function-policy\",\n config: {\n role: role.output.name,\n policyArn: stepFunctionPolicy.output.arn\n }\n });\n\n return {\n function: migration\n };\n }\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,10 @@
1
- import { PulumiAppModule } from "@webiny/pulumi";
1
+ import type { PulumiAppModule } from "@webiny/pulumi";
2
2
  export type ApiOutput = PulumiAppModule<typeof ApiOutput>;
3
3
  export declare const ApiOutput: import("@webiny/pulumi").PulumiAppModuleDefinition<import("@pulumi/pulumi").Output<import("@pulumi/pulumi").UnwrappedObject<{
4
4
  apiDomain: string;
5
5
  apiUrl: string;
6
6
  graphqlLambdaRole: string;
7
+ graphqlLambdaRoleName: string;
7
8
  apwSchedulerEventRule: string | undefined;
8
9
  apwSchedulerEventTargetId: string | undefined;
9
10
  apwSchedulerExecuteAction: string | undefined;
@@ -13,5 +14,14 @@ export declare const ApiOutput: import("@webiny/pulumi").PulumiAppModuleDefiniti
13
14
  cognitoUserPoolPasswordPolicy: string;
14
15
  dynamoDbTable: string;
15
16
  region: string;
17
+ websocketApiId: string | number | boolean | string[] | number[] | undefined;
16
18
  websocketApiUrl: string;
19
+ migrationLambdaArn: string;
20
+ graphqlLambdaName: string | number | boolean | string[] | number[] | undefined;
21
+ backgroundTaskLambdaArn: string | number | boolean | string[] | number[] | undefined;
22
+ backgroundTaskStepFunctionArn: string | number | boolean | string[] | number[] | undefined;
23
+ fileManagerManageLambdaArn: string;
24
+ fileManagerManageLambdaRole: string;
25
+ fileManagerManageLambdaRoleName: string;
26
+ fileManagerDownloadLambdaArn: string | number | boolean | string[] | number[] | undefined;
17
27
  }>>, void>;
@@ -22,6 +22,7 @@ const ApiOutput = exports.ApiOutput = (0, _pulumi.createAppModule)({
22
22
  apiDomain: output["apiDomain"],
23
23
  apiUrl: output["apiUrl"],
24
24
  graphqlLambdaRole: output["graphqlLambdaRole"],
25
+ graphqlLambdaRoleName: output["graphqlLambdaRoleName"],
25
26
  apwSchedulerEventRule: output["apwSchedulerEventRule"],
26
27
  apwSchedulerEventTargetId: output["apwSchedulerEventTargetId"],
27
28
  apwSchedulerExecuteAction: output["apwSchedulerExecuteAction"],
@@ -31,7 +32,16 @@ const ApiOutput = exports.ApiOutput = (0, _pulumi.createAppModule)({
31
32
  cognitoUserPoolPasswordPolicy: output["cognitoUserPoolPasswordPolicy"],
32
33
  dynamoDbTable: output["dynamoDbTable"],
33
34
  region: output["region"],
34
- websocketApiUrl: output["websocketApiUrl"]
35
+ websocketApiId: output["websocketApiId"],
36
+ websocketApiUrl: output["websocketApiUrl"],
37
+ migrationLambdaArn: output["migrationLambdaArn"],
38
+ graphqlLambdaName: output["graphqlLambdaName"],
39
+ backgroundTaskLambdaArn: output["backgroundTaskLambdaArn"],
40
+ backgroundTaskStepFunctionArn: output["backgroundTaskStepFunctionArn"],
41
+ fileManagerManageLambdaArn: output["fileManagerManageLambdaArn"],
42
+ fileManagerManageLambdaRole: output["fileManagerManageLambdaRole"],
43
+ fileManagerManageLambdaRoleName: output["fileManagerManageLambdaRoleName"],
44
+ fileManagerDownloadLambdaArn: output["fileManagerDownloadLambdaArn"]
35
45
  };
36
46
  });
37
47
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_pulumi","require","_utils","ApiOutput","exports","createAppModule","name","config","app","addHandler","output","getStackOutput","folder","env","params","run","variant","Error","apiDomain","apiUrl","graphqlLambdaRole","apwSchedulerEventRule","apwSchedulerEventTargetId","apwSchedulerExecuteAction","apwSchedulerScheduleAction","cognitoAppClientId","cognitoUserPoolId","cognitoUserPoolPasswordPolicy","dynamoDbTable","region","websocketApiUrl"],"sources":["ApiOutput.ts"],"sourcesContent":["import { createAppModule, PulumiAppModule } from \"@webiny/pulumi\";\nimport { getStackOutput } from \"@webiny/cli-plugin-deploy-pulumi/utils\";\n\nexport type ApiOutput = PulumiAppModule<typeof ApiOutput>;\n\nexport const ApiOutput = createAppModule({\n name: \"ApiOutput\",\n config(app) {\n return app.addHandler(async () => {\n const output = getStackOutput({\n folder: \"apps/api\",\n env: app.params.run.env,\n variant: app.params.run.variant\n });\n\n if (!output) {\n throw new Error(\"API application is not deployed.\");\n }\n\n return {\n apiDomain: output[\"apiDomain\"],\n apiUrl: output[\"apiUrl\"],\n graphqlLambdaRole: output[\"graphqlLambdaRole\"],\n apwSchedulerEventRule: output[\"apwSchedulerEventRule\"],\n apwSchedulerEventTargetId: output[\"apwSchedulerEventTargetId\"],\n apwSchedulerExecuteAction: output[\"apwSchedulerExecuteAction\"],\n apwSchedulerScheduleAction: output[\"apwSchedulerScheduleAction\"],\n cognitoAppClientId: output[\"cognitoAppClientId\"],\n cognitoUserPoolId: output[\"cognitoUserPoolId\"],\n cognitoUserPoolPasswordPolicy: output[\"cognitoUserPoolPasswordPolicy\"],\n dynamoDbTable: output[\"dynamoDbTable\"],\n region: output[\"region\"],\n websocketApiUrl: output[\"websocketApiUrl\"]\n };\n });\n }\n});\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAIO,MAAME,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAAE,uBAAe,EAAC;EACrCC,IAAI,EAAE,WAAW;EACjBC,MAAMA,CAACC,GAAG,EAAE;IACR,OAAOA,GAAG,CAACC,UAAU,CAAC,YAAY;MAC9B,MAAMC,MAAM,GAAG,IAAAC,qBAAc,EAAC;QAC1BC,MAAM,EAAE,UAAU;QAClBC,GAAG,EAAEL,GAAG,CAACM,MAAM,CAACC,GAAG,CAACF,GAAG;QACvBG,OAAO,EAAER,GAAG,CAACM,MAAM,CAACC,GAAG,CAACC;MAC5B,CAAC,CAAC;MAEF,IAAI,CAACN,MAAM,EAAE;QACT,MAAM,IAAIO,KAAK,CAAC,kCAAkC,CAAC;MACvD;MAEA,OAAO;QACHC,SAAS,EAAER,MAAM,CAAC,WAAW,CAAC;QAC9BS,MAAM,EAAET,MAAM,CAAC,QAAQ,CAAC;QACxBU,iBAAiB,EAAEV,MAAM,CAAC,mBAAmB,CAAC;QAC9CW,qBAAqB,EAAEX,MAAM,CAAC,uBAAuB,CAAC;QACtDY,yBAAyB,EAAEZ,MAAM,CAAC,2BAA2B,CAAC;QAC9Da,yBAAyB,EAAEb,MAAM,CAAC,2BAA2B,CAAC;QAC9Dc,0BAA0B,EAAEd,MAAM,CAAC,4BAA4B,CAAC;QAChEe,kBAAkB,EAAEf,MAAM,CAAC,oBAAoB,CAAC;QAChDgB,iBAAiB,EAAEhB,MAAM,CAAC,mBAAmB,CAAC;QAC9CiB,6BAA6B,EAAEjB,MAAM,CAAC,+BAA+B,CAAC;QACtEkB,aAAa,EAAElB,MAAM,CAAC,eAAe,CAAC;QACtCmB,MAAM,EAAEnB,MAAM,CAAC,QAAQ,CAAC;QACxBoB,eAAe,EAAEpB,MAAM,CAAC,iBAAiB;MAC7C,CAAC;IACL,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_pulumi","require","_utils","ApiOutput","exports","createAppModule","name","config","app","addHandler","output","getStackOutput","folder","env","params","run","variant","Error","apiDomain","apiUrl","graphqlLambdaRole","graphqlLambdaRoleName","apwSchedulerEventRule","apwSchedulerEventTargetId","apwSchedulerExecuteAction","apwSchedulerScheduleAction","cognitoAppClientId","cognitoUserPoolId","cognitoUserPoolPasswordPolicy","dynamoDbTable","region","websocketApiId","websocketApiUrl","migrationLambdaArn","graphqlLambdaName","backgroundTaskLambdaArn","backgroundTaskStepFunctionArn","fileManagerManageLambdaArn","fileManagerManageLambdaRole","fileManagerManageLambdaRoleName","fileManagerDownloadLambdaArn"],"sources":["ApiOutput.ts"],"sourcesContent":["import type { PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\nimport { getStackOutput } from \"@webiny/cli-plugin-deploy-pulumi/utils\";\n\nexport type ApiOutput = PulumiAppModule<typeof ApiOutput>;\n\nexport const ApiOutput = createAppModule({\n name: \"ApiOutput\",\n config(app) {\n return app.addHandler(async () => {\n const output = getStackOutput({\n folder: \"apps/api\",\n env: app.params.run.env,\n variant: app.params.run.variant\n });\n\n if (!output) {\n throw new Error(\"API application is not deployed.\");\n }\n\n return {\n apiDomain: output[\"apiDomain\"],\n apiUrl: output[\"apiUrl\"],\n graphqlLambdaRole: output[\"graphqlLambdaRole\"],\n graphqlLambdaRoleName: output[\"graphqlLambdaRoleName\"],\n apwSchedulerEventRule: output[\"apwSchedulerEventRule\"],\n apwSchedulerEventTargetId: output[\"apwSchedulerEventTargetId\"],\n apwSchedulerExecuteAction: output[\"apwSchedulerExecuteAction\"],\n apwSchedulerScheduleAction: output[\"apwSchedulerScheduleAction\"],\n cognitoAppClientId: output[\"cognitoAppClientId\"],\n cognitoUserPoolId: output[\"cognitoUserPoolId\"],\n cognitoUserPoolPasswordPolicy: output[\"cognitoUserPoolPasswordPolicy\"],\n dynamoDbTable: output[\"dynamoDbTable\"],\n region: output[\"region\"],\n websocketApiId: output[\"websocketApiId\"],\n websocketApiUrl: output[\"websocketApiUrl\"],\n migrationLambdaArn: output[\"migrationLambdaArn\"],\n graphqlLambdaName: output[\"graphqlLambdaName\"],\n backgroundTaskLambdaArn: output[\"backgroundTaskLambdaArn\"],\n backgroundTaskStepFunctionArn: output[\"backgroundTaskStepFunctionArn\"],\n fileManagerManageLambdaArn: output[\"fileManagerManageLambdaArn\"],\n fileManagerManageLambdaRole: output[\"fileManagerManageLambdaRole\"],\n fileManagerManageLambdaRoleName: output[\"fileManagerManageLambdaRoleName\"],\n fileManagerDownloadLambdaArn: output[\"fileManagerDownloadLambdaArn\"]\n };\n });\n }\n});\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAIO,MAAME,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAAE,uBAAe,EAAC;EACrCC,IAAI,EAAE,WAAW;EACjBC,MAAMA,CAACC,GAAG,EAAE;IACR,OAAOA,GAAG,CAACC,UAAU,CAAC,YAAY;MAC9B,MAAMC,MAAM,GAAG,IAAAC,qBAAc,EAAC;QAC1BC,MAAM,EAAE,UAAU;QAClBC,GAAG,EAAEL,GAAG,CAACM,MAAM,CAACC,GAAG,CAACF,GAAG;QACvBG,OAAO,EAAER,GAAG,CAACM,MAAM,CAACC,GAAG,CAACC;MAC5B,CAAC,CAAC;MAEF,IAAI,CAACN,MAAM,EAAE;QACT,MAAM,IAAIO,KAAK,CAAC,kCAAkC,CAAC;MACvD;MAEA,OAAO;QACHC,SAAS,EAAER,MAAM,CAAC,WAAW,CAAC;QAC9BS,MAAM,EAAET,MAAM,CAAC,QAAQ,CAAC;QACxBU,iBAAiB,EAAEV,MAAM,CAAC,mBAAmB,CAAC;QAC9CW,qBAAqB,EAAEX,MAAM,CAAC,uBAAuB,CAAC;QACtDY,qBAAqB,EAAEZ,MAAM,CAAC,uBAAuB,CAAC;QACtDa,yBAAyB,EAAEb,MAAM,CAAC,2BAA2B,CAAC;QAC9Dc,yBAAyB,EAAEd,MAAM,CAAC,2BAA2B,CAAC;QAC9De,0BAA0B,EAAEf,MAAM,CAAC,4BAA4B,CAAC;QAChEgB,kBAAkB,EAAEhB,MAAM,CAAC,oBAAoB,CAAC;QAChDiB,iBAAiB,EAAEjB,MAAM,CAAC,mBAAmB,CAAC;QAC9CkB,6BAA6B,EAAElB,MAAM,CAAC,+BAA+B,CAAC;QACtEmB,aAAa,EAAEnB,MAAM,CAAC,eAAe,CAAC;QACtCoB,MAAM,EAAEpB,MAAM,CAAC,QAAQ,CAAC;QACxBqB,cAAc,EAAErB,MAAM,CAAC,gBAAgB,CAAC;QACxCsB,eAAe,EAAEtB,MAAM,CAAC,iBAAiB,CAAC;QAC1CuB,kBAAkB,EAAEvB,MAAM,CAAC,oBAAoB,CAAC;QAChDwB,iBAAiB,EAAExB,MAAM,CAAC,mBAAmB,CAAC;QAC9CyB,uBAAuB,EAAEzB,MAAM,CAAC,yBAAyB,CAAC;QAC1D0B,6BAA6B,EAAE1B,MAAM,CAAC,+BAA+B,CAAC;QACtE2B,0BAA0B,EAAE3B,MAAM,CAAC,4BAA4B,CAAC;QAChE4B,2BAA2B,EAAE5B,MAAM,CAAC,6BAA6B,CAAC;QAClE6B,+BAA+B,EAAE7B,MAAM,CAAC,iCAAiC,CAAC;QAC1E8B,4BAA4B,EAAE9B,MAAM,CAAC,8BAA8B;MACvE,CAAC;IACL,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { PulumiAppModule } from "@webiny/pulumi";
1
+ import type { PulumiAppModule } from "@webiny/pulumi";
2
2
  interface PageBuilderParams {
3
3
  env: Record<string, any>;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"names":["path","_interopRequireWildcard","require","pulumi","aws","_installation","_pulumi2","_common","_lambdaUtils","_awsUtils","_constants","ApiPageBuilder","exports","createAppModule","name","config","app","params","core","getModule","CoreOutput","addHandler","pbInstallationZipPath","join","resolve","createInstallationZip","s3","BucketObject","key","bucket","fileManagerBucketId","contentType","source","asset","FileAsset","exportResources","createExportResources","importResources","createImportResources","export","import","policy","createExportLambdaPolicy","role","createLambdaRole","output","combine","addResource","lambda","Function","arn","runtime","LAMBDA_RUNTIME","handler","timeout","memorySize","description","code","AssetArchive","FileArchive","paths","workspace","environment","variables","getCommonLambdaEnvVariables","apply","value","env","S3_BUCKET","process","EXPORT_COMBINE_HANDLER","functions","awsAccountId","getAwsAccountId","awsRegion","getAwsRegion","elasticSearchEnabled","create","elasticSearch","iam","Policy","Version","Statement","Sid","Effect","Action","Resource","interpolate","primaryDynamodbTableArn","logDynamodbTableArn","elasticsearchDomainArn","createImportLambdaPolicy","IMPORT_QUEUE_PROCESS_HANDLER","coreOutput","elasticsearchDynamodbTableArn","cognitoUserPoolArn"],"sources":["ApiPageBuilder.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport { createInstallationZip } from \"@webiny/api-page-builder/installation\";\nimport { createAppModule, PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { CoreOutput } from \"../common\";\nimport { createLambdaRole, getCommonLambdaEnvVariables } from \"../lambdaUtils\";\nimport { getAwsAccountId, getAwsRegion } from \"../awsUtils\";\nimport { LAMBDA_RUNTIME } from \"~/constants\";\n\ninterface PageBuilderParams {\n env: Record<string, any>;\n}\n\nexport type ApiPageBuilder = PulumiAppModule<typeof ApiPageBuilder>;\n\nexport const ApiPageBuilder = createAppModule({\n name: \"ApiPageBuilder\",\n config(app: PulumiApp, params: PageBuilderParams) {\n const core = app.getModule(CoreOutput);\n\n app.addHandler(() => {\n const pbInstallationZipPath = path.join(path.resolve(), \".tmp\", \"pbInstallation.zip\");\n // Will create \"pbInstallation.zip\" and save it in the `pbInstallationZipPath` path.\n createInstallationZip(pbInstallationZipPath);\n\n new aws.s3.BucketObject(\"./pbInstallation.zip\", {\n key: \"pbInstallation.zip\",\n bucket: core.fileManagerBucketId,\n contentType: \"application/octet-stream\",\n source: new pulumi.asset.FileAsset(pbInstallationZipPath)\n });\n });\n\n const exportResources = createExportResources(app, params);\n const importResources = createImportResources(app, params);\n\n return {\n export: exportResources,\n import: importResources\n };\n }\n});\n\nfunction createExportResources(app: PulumiApp, params: PageBuilderParams) {\n const core = app.getModule(CoreOutput);\n\n const policy = createExportLambdaPolicy(app);\n const role = createLambdaRole(app, {\n name: \"pb-export-lambda-role\",\n policy: policy.output\n });\n\n const combine = app.addResource(aws.lambda.Function, {\n name: \"pb-export-combine\",\n config: {\n role: role.output.arn,\n runtime: LAMBDA_RUNTIME,\n handler: \"handler.handler\",\n timeout: 60,\n memorySize: 1024,\n description: \"Handle export's combine workflow\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"pageBuilder/export/combine/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n ...params.env,\n S3_BUCKET: core.fileManagerBucketId\n }))\n }\n }\n });\n\n const process = app.addResource(aws.lambda.Function, {\n name: \"pb-export-process\",\n config: {\n role: role.output.arn,\n runtime: LAMBDA_RUNTIME,\n handler: \"handler.handler\",\n timeout: 60,\n memorySize: 1024,\n description: \"Handle export's process workflow\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"pageBuilder/export/process/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n ...params.env,\n S3_BUCKET: core.fileManagerBucketId,\n EXPORT_COMBINE_HANDLER: combine.output.arn\n }))\n }\n }\n });\n\n return {\n role,\n policy,\n functions: {\n process,\n combine\n }\n };\n}\n\nfunction createExportLambdaPolicy(app: PulumiApp) {\n const core = app.getModule(CoreOutput);\n const awsAccountId = getAwsAccountId(app);\n const awsRegion = getAwsRegion(app);\n\n const elasticSearchEnabled = !!app.params.create.elasticSearch;\n\n return app.addResource(aws.iam.Policy, {\n name: \"PbExportTaskLambdaPolicy\",\n config: {\n description: \"This policy enables access to Dynamodb\",\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"AllowDynamoDBAccess\",\n Effect: \"Allow\",\n Action: [\n \"dynamodb:BatchGetItem\",\n \"dynamodb:BatchWriteItem\",\n \"dynamodb:PutItem\",\n \"dynamodb:DeleteItem\",\n \"dynamodb:GetItem\",\n \"dynamodb:Query\",\n \"dynamodb:UpdateItem\"\n ],\n Resource: [\n pulumi.interpolate`${core.primaryDynamodbTableArn}`,\n pulumi.interpolate`${core.primaryDynamodbTableArn}/*`,\n pulumi.interpolate`${core.logDynamodbTableArn}`,\n pulumi.interpolate`${core.logDynamodbTableArn}/*`\n ]\n },\n {\n Sid: \"PermissionForS3\",\n Effect: \"Allow\",\n Action: [\n \"s3:GetObjectAcl\",\n \"s3:DeleteObject\",\n \"s3:PutObjectAcl\",\n \"s3:PutObject\",\n \"s3:GetObject\",\n \"s3:ListBucket\"\n ],\n Resource: [\n pulumi.interpolate`arn:aws:s3:::${core.fileManagerBucketId}/*`,\n // We need to explicitly add bucket ARN to \"Resource\" list for \"s3:ListBucket\" action.\n pulumi.interpolate`arn:aws:s3:::${core.fileManagerBucketId}`\n ]\n },\n {\n Sid: \"PermissionForLambda\",\n Effect: \"Allow\",\n Action: [\"lambda:InvokeFunction\"],\n Resource: pulumi.interpolate`arn:aws:lambda:${awsRegion}:${awsAccountId}:function:*`\n },\n // Attach permissions for elastic search domain as well (if ES is enabled).\n ...(elasticSearchEnabled\n ? [\n {\n Sid: \"PermissionForES\",\n Effect: \"Allow\" as const,\n Action: \"es:*\",\n Resource: [\n pulumi.interpolate`${core.elasticsearchDomainArn}`,\n pulumi.interpolate`${core.elasticsearchDomainArn}/*`\n ]\n }\n ]\n : [])\n ]\n }\n }\n });\n}\n\nfunction createImportResources(app: PulumiApp, params: PageBuilderParams) {\n const core = app.getModule(CoreOutput);\n const policy = createImportLambdaPolicy(app);\n const role = createLambdaRole(app, {\n name: \"pb-import-lambda-role\",\n policy: policy.output\n });\n\n const process = app.addResource(aws.lambda.Function, {\n name: \"pb-import-queue-process\",\n config: {\n role: role.output.arn,\n runtime: LAMBDA_RUNTIME,\n handler: \"handler.handler\",\n timeout: 60,\n memorySize: 1024,\n description: \"Handle import queue process workflow\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"pageBuilder/import/process/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n ...params.env,\n S3_BUCKET: core.fileManagerBucketId\n }))\n }\n }\n });\n\n const create = app.addResource(aws.lambda.Function, {\n name: \"pb-import-queue-create\",\n config: {\n role: role.output.arn,\n runtime: LAMBDA_RUNTIME,\n handler: \"handler.handler\",\n timeout: 60,\n memorySize: 1024,\n description: \"Handle import queue create workflow\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"pageBuilder/import/create/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n ...params.env,\n S3_BUCKET: core.fileManagerBucketId,\n IMPORT_QUEUE_PROCESS_HANDLER: process.output.arn\n }))\n }\n }\n });\n\n return {\n role,\n policy,\n functions: {\n create,\n process\n }\n };\n}\n\nfunction createImportLambdaPolicy(app: PulumiApp) {\n const coreOutput = app.getModule(CoreOutput);\n const awsAccountId = getAwsAccountId(app);\n const awsRegion = getAwsRegion(app);\n\n const elasticSearchEnabled = !!app.params.create.elasticSearch;\n\n return app.addResource(aws.iam.Policy, {\n name: \"ImportLambdaPolicy\",\n config: {\n description: \"This policy enables access Dynamodb, S3, Lambda and Cognito IDP\",\n // Core is pulumi.Output, so we need to run apply() to resolve policy based on it\n policy: coreOutput.apply(core => {\n const policy: aws.iam.PolicyDocument = {\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"PermissionForDynamodb\",\n Effect: \"Allow\",\n Action: [\n \"dynamodb:BatchGetItem\",\n \"dynamodb:BatchWriteItem\",\n \"dynamodb:PutItem\",\n \"dynamodb:DeleteItem\",\n \"dynamodb:GetItem\",\n \"dynamodb:Query\",\n \"dynamodb:UpdateItem\"\n ],\n Resource: [\n `${core.primaryDynamodbTableArn}`,\n `${core.primaryDynamodbTableArn}/*`,\n // Attach permissions for elastic search dynamo as well (if ES is enabled).\n ...(core.elasticsearchDynamodbTableArn\n ? [\n `${core.elasticsearchDynamodbTableArn}`,\n `${core.elasticsearchDynamodbTableArn}/*`\n ]\n : [])\n ]\n },\n {\n Sid: \"PermissionForS3\",\n Effect: \"Allow\",\n Action: [\n \"s3:GetObjectAcl\",\n \"s3:DeleteObject\",\n \"s3:PutObjectAcl\",\n \"s3:PutObject\",\n \"s3:GetObject\",\n \"s3:ListBucket\"\n ],\n Resource: [\n `arn:aws:s3:::${core.fileManagerBucketId}/*`,\n // We need to explicitly add bucket ARN to \"Resource\" list for \"s3:ListBucket\" action.\n `arn:aws:s3:::${core.fileManagerBucketId}`\n ]\n },\n {\n Sid: \"PermissionForLambda\",\n Effect: \"Allow\",\n Action: [\"lambda:InvokeFunction\"],\n Resource: pulumi.interpolate`arn:aws:lambda:${awsRegion}:${awsAccountId}:function:*`\n },\n {\n Sid: \"PermissionForCognitoIdp\",\n Effect: \"Allow\",\n Action: \"cognito-idp:*\",\n Resource: `${core.cognitoUserPoolArn}`\n },\n // Attach permissions for elastic search domain as well (if ES is enabled).\n ...(elasticSearchEnabled\n ? [\n {\n Sid: \"PermissionForES\",\n Effect: \"Allow\" as const,\n Action: \"es:*\",\n Resource: [\n pulumi.interpolate`${core.elasticsearchDomainArn}`,\n pulumi.interpolate`${core.elasticsearchDomainArn}/*`\n ]\n }\n ]\n : [])\n ]\n };\n\n return policy;\n })\n }\n });\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["path","_interopRequireWildcard","require","pulumi","aws","_installation","_pulumi2","_common","_lambdaUtils","_awsUtils","_constants","ApiPageBuilder","exports","createAppModule","name","config","app","params","core","getModule","CoreOutput","addHandler","pbInstallationZipPath","join","resolve","createInstallationZip","s3","BucketObject","key","bucket","fileManagerBucketId","contentType","source","asset","FileAsset","exportResources","createExportResources","importResources","createImportResources","export","import","policy","createExportLambdaPolicy","role","createLambdaRole","output","combine","addResource","lambda","Function","arn","runtime","LAMBDA_RUNTIME","handler","timeout","memorySize","description","code","AssetArchive","FileArchive","paths","workspace","environment","variables","getCommonLambdaEnvVariables","apply","value","env","S3_BUCKET","process","EXPORT_COMBINE_HANDLER","functions","awsAccountId","getAwsAccountId","awsRegion","getAwsRegion","elasticSearchEnabled","create","elasticSearch","iam","Policy","Version","Statement","Sid","Effect","Action","Resource","interpolate","primaryDynamodbTableArn","logDynamodbTableArn","elasticsearchDomainArn","createImportLambdaPolicy","IMPORT_QUEUE_PROCESS_HANDLER","coreOutput","elasticsearchDynamodbTableArn","cognitoUserPoolArn"],"sources":["ApiPageBuilder.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport { createInstallationZip } from \"@webiny/api-page-builder/installation\";\nimport type { PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\nimport { CoreOutput } from \"../common\";\nimport { createLambdaRole, getCommonLambdaEnvVariables } from \"../lambdaUtils\";\nimport { getAwsAccountId, getAwsRegion } from \"../awsUtils\";\nimport { LAMBDA_RUNTIME } from \"~/constants\";\n\ninterface PageBuilderParams {\n env: Record<string, any>;\n}\n\nexport type ApiPageBuilder = PulumiAppModule<typeof ApiPageBuilder>;\n\nexport const ApiPageBuilder = createAppModule({\n name: \"ApiPageBuilder\",\n config(app: PulumiApp, params: PageBuilderParams) {\n const core = app.getModule(CoreOutput);\n\n app.addHandler(() => {\n const pbInstallationZipPath = path.join(path.resolve(), \".tmp\", \"pbInstallation.zip\");\n // Will create \"pbInstallation.zip\" and save it in the `pbInstallationZipPath` path.\n createInstallationZip(pbInstallationZipPath);\n\n new aws.s3.BucketObject(\"./pbInstallation.zip\", {\n key: \"pbInstallation.zip\",\n bucket: core.fileManagerBucketId,\n contentType: \"application/octet-stream\",\n source: new pulumi.asset.FileAsset(pbInstallationZipPath)\n });\n });\n\n const exportResources = createExportResources(app, params);\n const importResources = createImportResources(app, params);\n\n return {\n export: exportResources,\n import: importResources\n };\n }\n});\n\nfunction createExportResources(app: PulumiApp, params: PageBuilderParams) {\n const core = app.getModule(CoreOutput);\n\n const policy = createExportLambdaPolicy(app);\n const role = createLambdaRole(app, {\n name: \"pb-export-lambda-role\",\n policy: policy.output\n });\n\n const combine = app.addResource(aws.lambda.Function, {\n name: \"pb-export-combine\",\n config: {\n role: role.output.arn,\n runtime: LAMBDA_RUNTIME,\n handler: \"handler.handler\",\n timeout: 60,\n memorySize: 1024,\n description: \"Handle export's combine workflow\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"pageBuilder/export/combine/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n ...params.env,\n S3_BUCKET: core.fileManagerBucketId\n }))\n }\n }\n });\n\n const process = app.addResource(aws.lambda.Function, {\n name: \"pb-export-process\",\n config: {\n role: role.output.arn,\n runtime: LAMBDA_RUNTIME,\n handler: \"handler.handler\",\n timeout: 60,\n memorySize: 1024,\n description: \"Handle export's process workflow\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"pageBuilder/export/process/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n ...params.env,\n S3_BUCKET: core.fileManagerBucketId,\n EXPORT_COMBINE_HANDLER: combine.output.arn\n }))\n }\n }\n });\n\n return {\n role,\n policy,\n functions: {\n process,\n combine\n }\n };\n}\n\nfunction createExportLambdaPolicy(app: PulumiApp) {\n const core = app.getModule(CoreOutput);\n const awsAccountId = getAwsAccountId(app);\n const awsRegion = getAwsRegion(app);\n\n const elasticSearchEnabled = !!app.params.create.elasticSearch;\n\n return app.addResource(aws.iam.Policy, {\n name: \"PbExportTaskLambdaPolicy\",\n config: {\n description: \"This policy enables access to Dynamodb\",\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"AllowDynamoDBAccess\",\n Effect: \"Allow\",\n Action: [\n \"dynamodb:BatchGetItem\",\n \"dynamodb:BatchWriteItem\",\n \"dynamodb:PutItem\",\n \"dynamodb:DeleteItem\",\n \"dynamodb:GetItem\",\n \"dynamodb:Query\",\n \"dynamodb:UpdateItem\"\n ],\n Resource: [\n pulumi.interpolate`${core.primaryDynamodbTableArn}`,\n pulumi.interpolate`${core.primaryDynamodbTableArn}/*`,\n pulumi.interpolate`${core.logDynamodbTableArn}`,\n pulumi.interpolate`${core.logDynamodbTableArn}/*`\n ]\n },\n {\n Sid: \"PermissionForS3\",\n Effect: \"Allow\",\n Action: [\n \"s3:GetObjectAcl\",\n \"s3:DeleteObject\",\n \"s3:PutObjectAcl\",\n \"s3:PutObject\",\n \"s3:GetObject\",\n \"s3:ListBucket\"\n ],\n Resource: [\n pulumi.interpolate`arn:aws:s3:::${core.fileManagerBucketId}/*`,\n // We need to explicitly add bucket ARN to \"Resource\" list for \"s3:ListBucket\" action.\n pulumi.interpolate`arn:aws:s3:::${core.fileManagerBucketId}`\n ]\n },\n {\n Sid: \"PermissionForLambda\",\n Effect: \"Allow\",\n Action: [\"lambda:InvokeFunction\"],\n Resource: pulumi.interpolate`arn:aws:lambda:${awsRegion}:${awsAccountId}:function:*`\n },\n // Attach permissions for elastic search domain as well (if ES is enabled).\n ...(elasticSearchEnabled\n ? [\n {\n Sid: \"PermissionForES\",\n Effect: \"Allow\" as const,\n Action: \"es:*\",\n Resource: [\n pulumi.interpolate`${core.elasticsearchDomainArn}`,\n pulumi.interpolate`${core.elasticsearchDomainArn}/*`\n ]\n }\n ]\n : [])\n ]\n }\n }\n });\n}\n\nfunction createImportResources(app: PulumiApp, params: PageBuilderParams) {\n const core = app.getModule(CoreOutput);\n const policy = createImportLambdaPolicy(app);\n const role = createLambdaRole(app, {\n name: \"pb-import-lambda-role\",\n policy: policy.output\n });\n\n const process = app.addResource(aws.lambda.Function, {\n name: \"pb-import-queue-process\",\n config: {\n role: role.output.arn,\n runtime: LAMBDA_RUNTIME,\n handler: \"handler.handler\",\n timeout: 60,\n memorySize: 1024,\n description: \"Handle import queue process workflow\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"pageBuilder/import/process/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n ...params.env,\n S3_BUCKET: core.fileManagerBucketId\n }))\n }\n }\n });\n\n const create = app.addResource(aws.lambda.Function, {\n name: \"pb-import-queue-create\",\n config: {\n role: role.output.arn,\n runtime: LAMBDA_RUNTIME,\n handler: \"handler.handler\",\n timeout: 60,\n memorySize: 1024,\n description: \"Handle import queue create workflow\",\n code: new pulumi.asset.AssetArchive({\n \".\": new pulumi.asset.FileArchive(\n path.join(app.paths.workspace, \"pageBuilder/import/create/build\")\n )\n }),\n environment: {\n variables: getCommonLambdaEnvVariables().apply(value => ({\n ...value,\n ...params.env,\n S3_BUCKET: core.fileManagerBucketId,\n IMPORT_QUEUE_PROCESS_HANDLER: process.output.arn\n }))\n }\n }\n });\n\n return {\n role,\n policy,\n functions: {\n create,\n process\n }\n };\n}\n\nfunction createImportLambdaPolicy(app: PulumiApp) {\n const coreOutput = app.getModule(CoreOutput);\n const awsAccountId = getAwsAccountId(app);\n const awsRegion = getAwsRegion(app);\n\n const elasticSearchEnabled = !!app.params.create.elasticSearch;\n\n return app.addResource(aws.iam.Policy, {\n name: \"ImportLambdaPolicy\",\n config: {\n description: \"This policy enables access Dynamodb, S3, Lambda and Cognito IDP\",\n // Core is pulumi.Output, so we need to run apply() to resolve policy based on it\n policy: coreOutput.apply(core => {\n const policy: aws.iam.PolicyDocument = {\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"PermissionForDynamodb\",\n Effect: \"Allow\",\n Action: [\n \"dynamodb:BatchGetItem\",\n \"dynamodb:BatchWriteItem\",\n \"dynamodb:PutItem\",\n \"dynamodb:DeleteItem\",\n \"dynamodb:GetItem\",\n \"dynamodb:Query\",\n \"dynamodb:UpdateItem\"\n ],\n Resource: [\n `${core.primaryDynamodbTableArn}`,\n `${core.primaryDynamodbTableArn}/*`,\n // Attach permissions for elastic search dynamo as well (if ES is enabled).\n ...(core.elasticsearchDynamodbTableArn\n ? [\n `${core.elasticsearchDynamodbTableArn}`,\n `${core.elasticsearchDynamodbTableArn}/*`\n ]\n : [])\n ]\n },\n {\n Sid: \"PermissionForS3\",\n Effect: \"Allow\",\n Action: [\n \"s3:GetObjectAcl\",\n \"s3:DeleteObject\",\n \"s3:PutObjectAcl\",\n \"s3:PutObject\",\n \"s3:GetObject\",\n \"s3:ListBucket\"\n ],\n Resource: [\n `arn:aws:s3:::${core.fileManagerBucketId}/*`,\n // We need to explicitly add bucket ARN to \"Resource\" list for \"s3:ListBucket\" action.\n `arn:aws:s3:::${core.fileManagerBucketId}`\n ]\n },\n {\n Sid: \"PermissionForLambda\",\n Effect: \"Allow\",\n Action: [\"lambda:InvokeFunction\"],\n Resource: pulumi.interpolate`arn:aws:lambda:${awsRegion}:${awsAccountId}:function:*`\n },\n {\n Sid: \"PermissionForCognitoIdp\",\n Effect: \"Allow\",\n Action: \"cognito-idp:*\",\n Resource: `${core.cognitoUserPoolArn}`\n },\n // Attach permissions for elastic search domain as well (if ES is enabled).\n ...(elasticSearchEnabled\n ? [\n {\n Sid: \"PermissionForES\",\n Effect: \"Allow\" as const,\n Action: \"es:*\",\n Resource: [\n pulumi.interpolate`${core.elasticsearchDomainArn}`,\n pulumi.interpolate`${core.elasticsearchDomainArn}/*`\n ]\n }\n ]\n : [])\n ]\n };\n\n return policy;\n })\n }\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import type { PulumiAppModule } from "@webiny/pulumi";
2
+ export type ApiScheduler = PulumiAppModule<typeof ApiScheduler>;
3
+ export declare const ApiSchedulerBaseName = "scheduler-resolver";
4
+ export declare const ApiScheduler: import("@webiny/pulumi").PulumiAppModuleDefinition<{
5
+ invokeRole: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/role").Role>;
6
+ invokePolicy: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/rolePolicy").RolePolicy>;
7
+ policyAttachment: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/rolePolicyAttachment").RolePolicyAttachment>;
8
+ }, void>;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ApiSchedulerBaseName = exports.ApiScheduler = void 0;
9
+ var aws = _interopRequireWildcard(require("@pulumi/aws"));
10
+ var pulumi = _interopRequireWildcard(require("@pulumi/pulumi"));
11
+ var _pulumi2 = require("@webiny/pulumi");
12
+ var _ = require("./..");
13
+ var _awsUtils = require("../awsUtils.js");
14
+ var _kebabCase = _interopRequireDefault(require("lodash/kebabCase.js"));
15
+ const ApiSchedulerBaseName = exports.ApiSchedulerBaseName = "scheduler-resolver";
16
+ const createResourceName = name => {
17
+ return `${ApiSchedulerBaseName}-${(0, _kebabCase.default)(name)}`;
18
+ };
19
+ const ApiScheduler = exports.ApiScheduler = (0, _pulumi2.createAppModule)({
20
+ name: "ApiScheduler",
21
+ config(app) {
22
+ const awsRegion = (0, _awsUtils.getAwsRegion)(app);
23
+ const awsAccountId = (0, _awsUtils.getAwsAccountId)(app);
24
+ const graphql = app.getModule(_.ApiGraphql);
25
+ // const baseConfig = graphql.functions.graphql.config.clone();
26
+ /*
27
+ const schedulerResolverLambda = app.addResource(aws.lambda.Function, {
28
+ name: createResourceName("lambda"),
29
+ config: {
30
+ ...baseConfig,
31
+ layers: graphql.functions.graphql.output.layers.apply(arns => {
32
+ return Array.from(new Set([...(arns || []), getLayerArn("sharp")]));
33
+ }),
34
+ description: "Performs scheduled operations on Headless CMS entries."
35
+ }
36
+ });
37
+ */
38
+
39
+ const schedulerResolverInvokeRole = app.addResource(aws.iam.Role, {
40
+ name: createResourceName("invokeRole"),
41
+ config: {
42
+ assumeRolePolicy: JSON.stringify({
43
+ Version: "2012-10-17",
44
+ Statement: [{
45
+ Effect: "Allow",
46
+ Principal: {
47
+ Service: "scheduler.amazonaws.com"
48
+ },
49
+ Action: "sts:AssumeRole"
50
+ }]
51
+ })
52
+ }
53
+ });
54
+ const schedulerResolverInvokeLambdaPolicy = app.addResource(aws.iam.RolePolicy, {
55
+ name: createResourceName("invokeLambdaPolicy"),
56
+ config: {
57
+ role: schedulerResolverInvokeRole.output.id,
58
+ policy: graphql.functions.graphql.output.arn.apply(resolverArn => {
59
+ return JSON.stringify({
60
+ Version: "2012-10-17",
61
+ Statement: [{
62
+ Effect: "Allow",
63
+ Action: ["lambda:InvokeFunction"],
64
+ Resource: resolverArn
65
+ }]
66
+ });
67
+ })
68
+ }
69
+ });
70
+ const schedulerControlPolicy = app.addResource(aws.iam.Policy, {
71
+ name: createResourceName("controlPolicy"),
72
+ config: {
73
+ description: "Allow GraphQL Lambda to manage EventBridge Scheduler",
74
+ policy: pulumi.all([schedulerResolverInvokeRole.output.arn, awsRegion, awsAccountId]).apply(([invokeRoleArn, region, accountId]) => {
75
+ return JSON.stringify({
76
+ Version: "2012-10-17",
77
+ Statement: [{
78
+ Effect: "Allow",
79
+ Action: ["scheduler:CreateSchedule", "scheduler:UpdateSchedule", "scheduler:DeleteSchedule", "scheduler:GetSchedule", "scheduler:ListSchedules"],
80
+ Resource: [`arn:aws:scheduler:${region}:${accountId}:schedule/default/*`]
81
+ }, {
82
+ Effect: "Allow",
83
+ Action: "iam:PassRole",
84
+ Resource: [invokeRoleArn, `${invokeRoleArn}/*`]
85
+ }]
86
+ });
87
+ })
88
+ }
89
+ });
90
+ const schedulerResolverPolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {
91
+ name: createResourceName("graphqlSchedulerPolicyAttachment"),
92
+ config: {
93
+ role: graphql.role.output.name,
94
+ policyArn: schedulerControlPolicy.output.arn
95
+ }
96
+ });
97
+ return {
98
+ invokeRole: schedulerResolverInvokeRole,
99
+ invokePolicy: schedulerResolverInvokeLambdaPolicy,
100
+ policyAttachment: schedulerResolverPolicyAttachment
101
+ };
102
+ }
103
+ });
104
+
105
+ //# sourceMappingURL=ApiScheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["aws","_interopRequireWildcard","require","pulumi","_pulumi2","_","_awsUtils","_kebabCase","_interopRequireDefault","ApiSchedulerBaseName","exports","createResourceName","name","kebabCase","ApiScheduler","createAppModule","config","app","awsRegion","getAwsRegion","awsAccountId","getAwsAccountId","graphql","getModule","ApiGraphql","schedulerResolverInvokeRole","addResource","iam","Role","assumeRolePolicy","JSON","stringify","Version","Statement","Effect","Principal","Service","Action","schedulerResolverInvokeLambdaPolicy","RolePolicy","role","output","id","policy","functions","arn","apply","resolverArn","Resource","schedulerControlPolicy","Policy","description","all","invokeRoleArn","region","accountId","schedulerResolverPolicyAttachment","RolePolicyAttachment","policyArn","invokeRole","invokePolicy","policyAttachment"],"sources":["ApiScheduler.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport type { PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\nimport { ApiGraphql } from \"~/apps\";\nimport { getAwsAccountId, getAwsRegion } from \"~/apps/awsUtils.js\";\nimport kebabCase from \"lodash/kebabCase.js\";\n\nexport type ApiScheduler = PulumiAppModule<typeof ApiScheduler>;\n\nexport const ApiSchedulerBaseName = \"scheduler-resolver\";\n\nconst createResourceName = (name: string): string => {\n return `${ApiSchedulerBaseName}-${kebabCase(name)}`;\n};\n\nexport const ApiScheduler = createAppModule({\n name: \"ApiScheduler\",\n config(app: PulumiApp) {\n const awsRegion = getAwsRegion(app);\n const awsAccountId = getAwsAccountId(app);\n const graphql = app.getModule(ApiGraphql);\n // const baseConfig = graphql.functions.graphql.config.clone();\n /*\n const schedulerResolverLambda = app.addResource(aws.lambda.Function, {\n name: createResourceName(\"lambda\"),\n config: {\n ...baseConfig,\n layers: graphql.functions.graphql.output.layers.apply(arns => {\n return Array.from(new Set([...(arns || []), getLayerArn(\"sharp\")]));\n }),\n description: \"Performs scheduled operations on Headless CMS entries.\"\n }\n });\n */\n\n const schedulerResolverInvokeRole = app.addResource(aws.iam.Role, {\n name: createResourceName(\"invokeRole\"),\n config: {\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Effect: \"Allow\",\n Principal: {\n Service: \"scheduler.amazonaws.com\"\n },\n Action: \"sts:AssumeRole\"\n }\n ]\n })\n }\n });\n\n const schedulerResolverInvokeLambdaPolicy = app.addResource(aws.iam.RolePolicy, {\n name: createResourceName(\"invokeLambdaPolicy\"),\n config: {\n role: schedulerResolverInvokeRole.output.id,\n policy: graphql.functions.graphql.output.arn.apply(resolverArn => {\n return JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Effect: \"Allow\",\n Action: [\"lambda:InvokeFunction\"],\n Resource: resolverArn\n }\n ]\n });\n })\n }\n });\n\n const schedulerControlPolicy = app.addResource(aws.iam.Policy, {\n name: createResourceName(\"controlPolicy\"),\n config: {\n description: \"Allow GraphQL Lambda to manage EventBridge Scheduler\",\n policy: pulumi\n .all([schedulerResolverInvokeRole.output.arn, awsRegion, awsAccountId])\n .apply(([invokeRoleArn, region, accountId]) => {\n return JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Effect: \"Allow\",\n Action: [\n \"scheduler:CreateSchedule\",\n \"scheduler:UpdateSchedule\",\n \"scheduler:DeleteSchedule\",\n \"scheduler:GetSchedule\",\n \"scheduler:ListSchedules\"\n ],\n Resource: [\n `arn:aws:scheduler:${region}:${accountId}:schedule/default/*`\n ]\n },\n {\n Effect: \"Allow\",\n Action: \"iam:PassRole\",\n Resource: [invokeRoleArn, `${invokeRoleArn}/*`]\n }\n ]\n });\n })\n }\n });\n\n const schedulerResolverPolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: createResourceName(\"graphqlSchedulerPolicyAttachment\"),\n config: {\n role: graphql.role.output.name,\n policyArn: schedulerControlPolicy.output.arn\n }\n });\n\n return {\n invokeRole: schedulerResolverInvokeRole,\n invokePolicy: schedulerResolverInvokeLambdaPolicy,\n policyAttachment: schedulerResolverPolicyAttachment\n };\n }\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
- import { PulumiAppModule } from "@webiny/pulumi";
2
+ import type { PulumiAppModule } from "@webiny/pulumi";
3
3
  export type ApiWebsocket = PulumiAppModule<typeof ApiWebsocket>;
4
4
  export declare const ApiWebsocket: import("@webiny/pulumi").PulumiAppModuleDefinition<{
5
5
  websocketApi: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/apigatewayv2/api").Api>;
@@ -1 +1 @@
1
- {"version":3,"names":["pulumi","_interopRequireWildcard","require","aws","_pulumi2","_","ApiWebsocket","exports","createAppModule","name","config","app","graphql","getModule","ApiGraphql","websocketApi","addResource","apigatewayv2","Api","protocolType","routeSelectionExpression","websocketLambdaPermission","lambda","Permission","action","function","functions","output","principal","sourceArn","executionArn","apply","arn","lambdaWebsocketPolicy","iam","Policy","policy","Version","Statement","Effect","Action","Resource","Sid","lambdaWebsocketRolePolicyAttachment","RolePolicyAttachment","policyArn","role","websocketApiIntegration","Integration","apiId","id","integrationType","integrationUri","invokeArn","websocketApiDefaultRoute","Route","routeKey","target","value","websocketApiConnectRoute","authorizationType","opts","dependsOn","websocketApiDisconnectRoute","apiGatewayLoggingRole","Role","assumeRolePolicy","assumeRolePolicyForPrincipal","Service","RolePolicy","websocketApiStage","Stage","autoDeploy","params","run","env","defaultRouteSettings","throttlingBurstLimit","throttlingRateLimit","websocketApiUrl","interpolate","apiEndpoint"],"sources":["ApiWebsocket.ts"],"sourcesContent":["import * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport { createAppModule, PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { ApiGraphql } from \"~/apps\";\n\nexport type ApiWebsocket = PulumiAppModule<typeof ApiWebsocket>;\n\nexport const ApiWebsocket = createAppModule({\n name: \"ApiWebsocket\",\n config(app: PulumiApp) {\n const graphql = app.getModule(ApiGraphql);\n\n const websocketApi = app.addResource(aws.apigatewayv2.Api, {\n name: \"websocket-api\",\n config: {\n protocolType: \"WEBSOCKET\",\n routeSelectionExpression: \"$request.body.action\"\n }\n });\n\n const websocketLambdaPermission = app.addResource(aws.lambda.Permission, {\n name: `websocket-api-ws-to-lambda-permission`,\n config: {\n action: \"lambda:InvokeFunction\",\n function: graphql.functions.graphql.output.name,\n principal: \"apigateway.amazonaws.com\",\n sourceArn: websocketApi.output.executionArn.apply(arn => `${arn}/*`)\n }\n });\n\n const lambdaWebsocketPolicy = app.addResource(aws.iam.Policy, {\n name: \"websocket-api-lambda-policy\",\n config: {\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Effect: \"Allow\",\n Action: \"execute-api:ManageConnections\",\n Resource: [\n websocketApi.output.arn,\n websocketApi.output.executionArn,\n websocketApi.output.arn.apply(arn => `${arn}/*`),\n websocketApi.output.executionArn.apply(arn => `${arn}/*`)\n ],\n Sid: \"PermissionForWebsocket\"\n }\n ]\n }\n }\n });\n\n const lambdaWebsocketRolePolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: \"websocket-api-lambda-role-policy-attachment\",\n config: {\n policyArn: lambdaWebsocketPolicy.output.arn,\n role: graphql.role.output\n }\n });\n\n const websocketApiIntegration = app.addResource(aws.apigatewayv2.Integration, {\n name: \"websocket-api-integration\",\n config: {\n apiId: websocketApi.output.id,\n integrationType: \"AWS_PROXY\",\n integrationUri: graphql.functions.graphql.output.invokeArn\n }\n });\n\n const websocketApiDefaultRoute = app.addResource(aws.apigatewayv2.Route, {\n name: \"websocket-api-route-default\",\n config: {\n apiId: websocketApi.output.id,\n routeKey: \"$default\",\n target: websocketApiIntegration.output.id.apply(value => `integrations/${value}`)\n }\n });\n\n const websocketApiConnectRoute = app.addResource(aws.apigatewayv2.Route, {\n name: \"websocket-api-route-connect\",\n config: {\n apiId: websocketApi.output.id,\n routeKey: \"$connect\",\n authorizationType: \"NONE\",\n target: websocketApiIntegration.output.id.apply(value => `integrations/${value}`)\n },\n opts: { dependsOn: websocketApiDefaultRoute.output }\n });\n\n const websocketApiDisconnectRoute = app.addResource(aws.apigatewayv2.Route, {\n name: \"websocket-api-route-disconnect\",\n config: {\n apiId: websocketApi.output.id,\n routeKey: \"$disconnect\",\n authorizationType: \"NONE\",\n target: websocketApiIntegration.output.id.apply(value => `integrations/${value}`)\n },\n opts: { dependsOn: websocketApiConnectRoute.output }\n });\n\n const apiGatewayLoggingRole = app.addResource(aws.iam.Role, {\n name: \"apiGatewayLoggingRole\",\n config: {\n assumeRolePolicy: aws.iam.assumeRolePolicyForPrincipal({\n Service: \"apigateway.amazonaws.com\"\n })\n }\n });\n\n app.addResource(aws.iam.RolePolicy, {\n name: \"apiGatewayLoggingPolicy\",\n config: {\n role: apiGatewayLoggingRole.output.id,\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\"logs:*\"],\n Effect: \"Allow\",\n Resource: \"*\"\n }\n ]\n }\n }\n });\n\n const websocketApiStage = app.addResource(aws.apigatewayv2.Stage, {\n name: \"websocket-api-stage\",\n config: {\n apiId: websocketApi.output.id,\n autoDeploy: true,\n name: app.params.run.env,\n defaultRouteSettings: {\n // Only enable when debugging. Note that by default, API Gateway does not\n // have the required permissions to write logs to CloudWatch logs. More:\n // https://coady.tech/aws-cloudwatch-logs-arn/\n // loggingLevel: \"INFO\",\n throttlingBurstLimit: 5000,\n throttlingRateLimit: 10000\n }\n }\n });\n\n return {\n websocketApi,\n websocketApiStage,\n websocketApiConnectRoute,\n websocketApiDisconnectRoute,\n websocketApiDefaultRoute,\n websocketLambdaPermission,\n lambdaWebsocketPolicy,\n lambdaWebsocketRolePolicyAttachment,\n websocketApiUrl: pulumi.interpolate`${websocketApi.output.apiEndpoint}/${websocketApiStage.output.name}`\n };\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,CAAA,GAAAH,OAAA;AAIO,MAAMI,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,wBAAe,EAAC;EACxCC,IAAI,EAAE,cAAc;EACpBC,MAAMA,CAACC,GAAc,EAAE;IACnB,MAAMC,OAAO,GAAGD,GAAG,CAACE,SAAS,CAACC,YAAU,CAAC;IAEzC,MAAMC,YAAY,GAAGJ,GAAG,CAACK,WAAW,CAACb,GAAG,CAACc,YAAY,CAACC,GAAG,EAAE;MACvDT,IAAI,EAAE,eAAe;MACrBC,MAAM,EAAE;QACJS,YAAY,EAAE,WAAW;QACzBC,wBAAwB,EAAE;MAC9B;IACJ,CAAC,CAAC;IAEF,MAAMC,yBAAyB,GAAGV,GAAG,CAACK,WAAW,CAACb,GAAG,CAACmB,MAAM,CAACC,UAAU,EAAE;MACrEd,IAAI,EAAE,uCAAuC;MAC7CC,MAAM,EAAE;QACJc,MAAM,EAAE,uBAAuB;QAC/BC,QAAQ,EAAEb,OAAO,CAACc,SAAS,CAACd,OAAO,CAACe,MAAM,CAAClB,IAAI;QAC/CmB,SAAS,EAAE,0BAA0B;QACrCC,SAAS,EAAEd,YAAY,CAACY,MAAM,CAACG,YAAY,CAACC,KAAK,CAACC,GAAG,IAAI,GAAGA,GAAG,IAAI;MACvE;IACJ,CAAC,CAAC;IAEF,MAAMC,qBAAqB,GAAGtB,GAAG,CAACK,WAAW,CAACb,GAAG,CAAC+B,GAAG,CAACC,MAAM,EAAE;MAC1D1B,IAAI,EAAE,6BAA6B;MACnCC,MAAM,EAAE;QACJ0B,MAAM,EAAE;UACJC,OAAO,EAAE,YAAY;UACrBC,SAAS,EAAE,CACP;YACIC,MAAM,EAAE,OAAO;YACfC,MAAM,EAAE,+BAA+B;YACvCC,QAAQ,EAAE,CACN1B,YAAY,CAACY,MAAM,CAACK,GAAG,EACvBjB,YAAY,CAACY,MAAM,CAACG,YAAY,EAChCf,YAAY,CAACY,MAAM,CAACK,GAAG,CAACD,KAAK,CAACC,GAAG,IAAI,GAAGA,GAAG,IAAI,CAAC,EAChDjB,YAAY,CAACY,MAAM,CAACG,YAAY,CAACC,KAAK,CAACC,GAAG,IAAI,GAAGA,GAAG,IAAI,CAAC,CAC5D;YACDU,GAAG,EAAE;UACT,CAAC;QAET;MACJ;IACJ,CAAC,CAAC;IAEF,MAAMC,mCAAmC,GAAGhC,GAAG,CAACK,WAAW,CAACb,GAAG,CAAC+B,GAAG,CAACU,oBAAoB,EAAE;MACtFnC,IAAI,EAAE,6CAA6C;MACnDC,MAAM,EAAE;QACJmC,SAAS,EAAEZ,qBAAqB,CAACN,MAAM,CAACK,GAAG;QAC3Cc,IAAI,EAAElC,OAAO,CAACkC,IAAI,CAACnB;MACvB;IACJ,CAAC,CAAC;IAEF,MAAMoB,uBAAuB,GAAGpC,GAAG,CAACK,WAAW,CAACb,GAAG,CAACc,YAAY,CAAC+B,WAAW,EAAE;MAC1EvC,IAAI,EAAE,2BAA2B;MACjCC,MAAM,EAAE;QACJuC,KAAK,EAAElC,YAAY,CAACY,MAAM,CAACuB,EAAE;QAC7BC,eAAe,EAAE,WAAW;QAC5BC,cAAc,EAAExC,OAAO,CAACc,SAAS,CAACd,OAAO,CAACe,MAAM,CAAC0B;MACrD;IACJ,CAAC,CAAC;IAEF,MAAMC,wBAAwB,GAAG3C,GAAG,CAACK,WAAW,CAACb,GAAG,CAACc,YAAY,CAACsC,KAAK,EAAE;MACrE9C,IAAI,EAAE,6BAA6B;MACnCC,MAAM,EAAE;QACJuC,KAAK,EAAElC,YAAY,CAACY,MAAM,CAACuB,EAAE;QAC7BM,QAAQ,EAAE,UAAU;QACpBC,MAAM,EAAEV,uBAAuB,CAACpB,MAAM,CAACuB,EAAE,CAACnB,KAAK,CAAC2B,KAAK,IAAI,gBAAgBA,KAAK,EAAE;MACpF;IACJ,CAAC,CAAC;IAEF,MAAMC,wBAAwB,GAAGhD,GAAG,CAACK,WAAW,CAACb,GAAG,CAACc,YAAY,CAACsC,KAAK,EAAE;MACrE9C,IAAI,EAAE,6BAA6B;MACnCC,MAAM,EAAE;QACJuC,KAAK,EAAElC,YAAY,CAACY,MAAM,CAACuB,EAAE;QAC7BM,QAAQ,EAAE,UAAU;QACpBI,iBAAiB,EAAE,MAAM;QACzBH,MAAM,EAAEV,uBAAuB,CAACpB,MAAM,CAACuB,EAAE,CAACnB,KAAK,CAAC2B,KAAK,IAAI,gBAAgBA,KAAK,EAAE;MACpF,CAAC;MACDG,IAAI,EAAE;QAAEC,SAAS,EAAER,wBAAwB,CAAC3B;MAAO;IACvD,CAAC,CAAC;IAEF,MAAMoC,2BAA2B,GAAGpD,GAAG,CAACK,WAAW,CAACb,GAAG,CAACc,YAAY,CAACsC,KAAK,EAAE;MACxE9C,IAAI,EAAE,gCAAgC;MACtCC,MAAM,EAAE;QACJuC,KAAK,EAAElC,YAAY,CAACY,MAAM,CAACuB,EAAE;QAC7BM,QAAQ,EAAE,aAAa;QACvBI,iBAAiB,EAAE,MAAM;QACzBH,MAAM,EAAEV,uBAAuB,CAACpB,MAAM,CAACuB,EAAE,CAACnB,KAAK,CAAC2B,KAAK,IAAI,gBAAgBA,KAAK,EAAE;MACpF,CAAC;MACDG,IAAI,EAAE;QAAEC,SAAS,EAAEH,wBAAwB,CAAChC;MAAO;IACvD,CAAC,CAAC;IAEF,MAAMqC,qBAAqB,GAAGrD,GAAG,CAACK,WAAW,CAACb,GAAG,CAAC+B,GAAG,CAAC+B,IAAI,EAAE;MACxDxD,IAAI,EAAE,uBAAuB;MAC7BC,MAAM,EAAE;QACJwD,gBAAgB,EAAE/D,GAAG,CAAC+B,GAAG,CAACiC,4BAA4B,CAAC;UACnDC,OAAO,EAAE;QACb,CAAC;MACL;IACJ,CAAC,CAAC;IAEFzD,GAAG,CAACK,WAAW,CAACb,GAAG,CAAC+B,GAAG,CAACmC,UAAU,EAAE;MAChC5D,IAAI,EAAE,yBAAyB;MAC/BC,MAAM,EAAE;QACJoC,IAAI,EAAEkB,qBAAqB,CAACrC,MAAM,CAACuB,EAAE;QACrCd,MAAM,EAAE;UACJC,OAAO,EAAE,YAAY;UACrBC,SAAS,EAAE,CACP;YACIE,MAAM,EAAE,CAAC,QAAQ,CAAC;YAClBD,MAAM,EAAE,OAAO;YACfE,QAAQ,EAAE;UACd,CAAC;QAET;MACJ;IACJ,CAAC,CAAC;IAEF,MAAM6B,iBAAiB,GAAG3D,GAAG,CAACK,WAAW,CAACb,GAAG,CAACc,YAAY,CAACsD,KAAK,EAAE;MAC9D9D,IAAI,EAAE,qBAAqB;MAC3BC,MAAM,EAAE;QACJuC,KAAK,EAAElC,YAAY,CAACY,MAAM,CAACuB,EAAE;QAC7BsB,UAAU,EAAE,IAAI;QAChB/D,IAAI,EAAEE,GAAG,CAAC8D,MAAM,CAACC,GAAG,CAACC,GAAG;QACxBC,oBAAoB,EAAE;UAClB;UACA;UACA;UACA;UACAC,oBAAoB,EAAE,IAAI;UAC1BC,mBAAmB,EAAE;QACzB;MACJ;IACJ,CAAC,CAAC;IAEF,OAAO;MACH/D,YAAY;MACZuD,iBAAiB;MACjBX,wBAAwB;MACxBI,2BAA2B;MAC3BT,wBAAwB;MACxBjC,yBAAyB;MACzBY,qBAAqB;MACrBU,mCAAmC;MACnCoC,eAAe,EAAE/E,MAAM,CAACgF,WAAW,GAAGjE,YAAY,CAACY,MAAM,CAACsD,WAAW,IAAIX,iBAAiB,CAAC3C,MAAM,CAAClB,IAAI;IAC1G,CAAC;EACL;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["pulumi","_interopRequireWildcard","require","aws","_pulumi2","_","ApiWebsocket","exports","createAppModule","name","config","app","graphql","getModule","ApiGraphql","websocketApi","addResource","apigatewayv2","Api","protocolType","routeSelectionExpression","websocketLambdaPermission","lambda","Permission","action","function","functions","output","principal","sourceArn","executionArn","apply","arn","lambdaWebsocketPolicy","iam","Policy","policy","Version","Statement","Effect","Action","Resource","Sid","lambdaWebsocketRolePolicyAttachment","RolePolicyAttachment","policyArn","role","websocketApiIntegration","Integration","apiId","id","integrationType","integrationUri","invokeArn","websocketApiDefaultRoute","Route","routeKey","target","value","websocketApiConnectRoute","authorizationType","opts","dependsOn","websocketApiDisconnectRoute","apiGatewayLoggingRole","Role","assumeRolePolicy","assumeRolePolicyForPrincipal","Service","RolePolicy","websocketApiStage","Stage","autoDeploy","params","run","env","defaultRouteSettings","throttlingBurstLimit","throttlingRateLimit","websocketApiUrl","interpolate","apiEndpoint"],"sources":["ApiWebsocket.ts"],"sourcesContent":["import * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport type { PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\nimport { ApiGraphql } from \"~/apps\";\n\nexport type ApiWebsocket = PulumiAppModule<typeof ApiWebsocket>;\n\nexport const ApiWebsocket = createAppModule({\n name: \"ApiWebsocket\",\n config(app: PulumiApp) {\n const graphql = app.getModule(ApiGraphql);\n\n const websocketApi = app.addResource(aws.apigatewayv2.Api, {\n name: \"websocket-api\",\n config: {\n protocolType: \"WEBSOCKET\",\n routeSelectionExpression: \"$request.body.action\"\n }\n });\n\n const websocketLambdaPermission = app.addResource(aws.lambda.Permission, {\n name: `websocket-api-ws-to-lambda-permission`,\n config: {\n action: \"lambda:InvokeFunction\",\n function: graphql.functions.graphql.output.name,\n principal: \"apigateway.amazonaws.com\",\n sourceArn: websocketApi.output.executionArn.apply(arn => `${arn}/*`)\n }\n });\n\n const lambdaWebsocketPolicy = app.addResource(aws.iam.Policy, {\n name: \"websocket-api-lambda-policy\",\n config: {\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Effect: \"Allow\",\n Action: \"execute-api:ManageConnections\",\n Resource: [\n websocketApi.output.arn,\n websocketApi.output.executionArn,\n websocketApi.output.arn.apply(arn => `${arn}/*`),\n websocketApi.output.executionArn.apply(arn => `${arn}/*`)\n ],\n Sid: \"PermissionForWebsocket\"\n }\n ]\n }\n }\n });\n\n const lambdaWebsocketRolePolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: \"websocket-api-lambda-role-policy-attachment\",\n config: {\n policyArn: lambdaWebsocketPolicy.output.arn,\n role: graphql.role.output\n }\n });\n\n const websocketApiIntegration = app.addResource(aws.apigatewayv2.Integration, {\n name: \"websocket-api-integration\",\n config: {\n apiId: websocketApi.output.id,\n integrationType: \"AWS_PROXY\",\n integrationUri: graphql.functions.graphql.output.invokeArn\n }\n });\n\n const websocketApiDefaultRoute = app.addResource(aws.apigatewayv2.Route, {\n name: \"websocket-api-route-default\",\n config: {\n apiId: websocketApi.output.id,\n routeKey: \"$default\",\n target: websocketApiIntegration.output.id.apply(value => `integrations/${value}`)\n }\n });\n\n const websocketApiConnectRoute = app.addResource(aws.apigatewayv2.Route, {\n name: \"websocket-api-route-connect\",\n config: {\n apiId: websocketApi.output.id,\n routeKey: \"$connect\",\n authorizationType: \"NONE\",\n target: websocketApiIntegration.output.id.apply(value => `integrations/${value}`)\n },\n opts: { dependsOn: websocketApiDefaultRoute.output }\n });\n\n const websocketApiDisconnectRoute = app.addResource(aws.apigatewayv2.Route, {\n name: \"websocket-api-route-disconnect\",\n config: {\n apiId: websocketApi.output.id,\n routeKey: \"$disconnect\",\n authorizationType: \"NONE\",\n target: websocketApiIntegration.output.id.apply(value => `integrations/${value}`)\n },\n opts: { dependsOn: websocketApiConnectRoute.output }\n });\n\n const apiGatewayLoggingRole = app.addResource(aws.iam.Role, {\n name: \"apiGatewayLoggingRole\",\n config: {\n assumeRolePolicy: aws.iam.assumeRolePolicyForPrincipal({\n Service: \"apigateway.amazonaws.com\"\n })\n }\n });\n\n app.addResource(aws.iam.RolePolicy, {\n name: \"apiGatewayLoggingPolicy\",\n config: {\n role: apiGatewayLoggingRole.output.id,\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\"logs:*\"],\n Effect: \"Allow\",\n Resource: \"*\"\n }\n ]\n }\n }\n });\n\n const websocketApiStage = app.addResource(aws.apigatewayv2.Stage, {\n name: \"websocket-api-stage\",\n config: {\n apiId: websocketApi.output.id,\n autoDeploy: true,\n name: app.params.run.env,\n defaultRouteSettings: {\n // Only enable when debugging. Note that by default, API Gateway does not\n // have the required permissions to write logs to CloudWatch logs. More:\n // https://coady.tech/aws-cloudwatch-logs-arn/\n // loggingLevel: \"INFO\",\n throttlingBurstLimit: 5000,\n throttlingRateLimit: 10000\n }\n }\n });\n\n return {\n websocketApi,\n websocketApiStage,\n websocketApiConnectRoute,\n websocketApiDisconnectRoute,\n websocketApiDefaultRoute,\n websocketLambdaPermission,\n lambdaWebsocketPolicy,\n lambdaWebsocketRolePolicyAttachment,\n websocketApiUrl: pulumi.interpolate`${websocketApi.output.apiEndpoint}/${websocketApiStage.output.name}`\n };\n }\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as pulumi from "@pulumi/pulumi";
2
- import { StepFunctionDefinition } from "./types";
1
+ import type * as pulumi from "@pulumi/pulumi";
2
+ import type { StepFunctionDefinition } from "./types";
3
3
  export interface BackgroundTaskParams {
4
4
  lambdaName: string;
5
5
  lambdaArn: pulumi.Input<string>;
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","createBackgroundTaskDefinition","params","lambdaName","lambdaArn","Comment","StartAt","States","TransformEvent","Type","StepFunctionDefinitionStatesType","Pass","Next","Parameters","Run","Task","Resource","ResultPath","InputPath","name","payload","endpoint","Catch","ErrorEquals","CheckStatus","Choice","Choices","Variable","IsNull","And","StringEquals","IsPresent","IsNumeric","NumericGreaterThan","Default","Waiter","Wait","SecondsPath","UnknownError","Fail","Cause","UnknownStatus","Error","CausePath","ErrorPath","Done","Succeed","Aborted","exports"],"sources":["definition.ts"],"sourcesContent":["import * as pulumi from \"@pulumi/pulumi\";\nimport { StepFunctionDefinition, StepFunctionDefinitionStatesType } from \"./types\";\n\nexport interface BackgroundTaskParams {\n lambdaName: string;\n lambdaArn: pulumi.Input<string>;\n}\n\nexport const createBackgroundTaskDefinition = (\n params: BackgroundTaskParams\n): StepFunctionDefinition => {\n const { lambdaName, lambdaArn } = params;\n return {\n Comment: \"Background tasks\",\n StartAt: \"TransformEvent\",\n States: {\n /**\n * Transform the EventBridge event to a format that will be used in the Lambda.\n */\n TransformEvent: {\n Type: StepFunctionDefinitionStatesType.Pass,\n Next: \"Run\",\n Parameters: {\n \"webinyTaskId.$\": \"$.detail.webinyTaskId\",\n \"webinyTaskDefinitionId.$\": \"$.detail.webinyTaskDefinitionId\",\n \"tenant.$\": \"$.detail.tenant\",\n \"locale.$\": \"$.detail.locale\",\n \"delay.$\": \"$.detail.delay\"\n }\n },\n /**\n * Run the task and wait for the response from lambda.\n * On some fatal error go to Error step.\n * In other cases, check the status of the task.\n */\n Run: {\n Type: StepFunctionDefinitionStatesType.Task,\n Resource: lambdaArn,\n Next: \"CheckStatus\",\n ResultPath: \"$\",\n InputPath: \"$\",\n /**\n * Parameters will be received as an event in the Lambda.\n * Task Handler determines that it can run a task based on the Payload.webinyTaskId parameter - it must be set!\n */\n Parameters: {\n name: lambdaName,\n payload: {\n \"webinyTaskId.$\": \"$.webinyTaskId\",\n \"webinyTaskDefinitionId.$\": \"$.webinyTaskDefinitionId\",\n \"locale.$\": \"$.locale\",\n \"tenant.$\": \"$.tenant\",\n \"delay.$\": \"$.delay\",\n endpoint: \"manage\",\n \"executionName.$\": \"$$.Execution.Name\",\n \"stateMachineId.$\": \"$$.StateMachine.Id\"\n }\n },\n Catch: [\n {\n ErrorEquals: [\"States.ALL\"],\n Next: \"UnknownError\"\n }\n ]\n },\n /**\n * On CONTINUE, go back to Run.\n * On ERROR, go to Error step.\n * On DONE, go to Done step.\n */\n CheckStatus: {\n Type: StepFunctionDefinitionStatesType.Choice,\n InputPath: \"$\",\n Choices: [\n /**\n * There is a possibility that the task will return a CONTINUE status and a waitUntil value.\n * This means that task will wait for the specified time and then continue.\n * It can be used to handle waiting for child tasks or some resource to be created.\n */\n {\n Variable: \"$\",\n IsNull: true,\n Next: \"UnknownError\"\n },\n {\n And: [\n {\n Variable: \"$.status\",\n StringEquals: \"continue\"\n },\n {\n Variable: \"$.wait\",\n IsPresent: true\n },\n {\n Variable: \"$.wait\",\n IsNumeric: true\n },\n {\n Variable: \"$.wait\",\n NumericGreaterThan: 0\n }\n ],\n Next: \"Waiter\"\n },\n /**\n * When no wait value is present, go to Run.\n */\n {\n Variable: \"$.status\",\n StringEquals: \"continue\",\n Next: \"Run\"\n },\n {\n Variable: \"$.status\",\n StringEquals: \"error\",\n Next: \"Error\"\n },\n {\n Variable: \"$.status\",\n StringEquals: \"done\",\n Next: \"Done\"\n },\n {\n Variable: \"$.status\",\n StringEquals: \"aborted\",\n Next: \"Aborted\"\n }\n ],\n Default: \"UnknownStatus\"\n },\n Waiter: {\n Type: StepFunctionDefinitionStatesType.Wait,\n SecondsPath: \"$.wait\",\n Next: \"Run\"\n },\n UnknownError: {\n Type: StepFunctionDefinitionStatesType.Fail,\n Cause: \"Fatal error - unknown task error.\"\n },\n /**\n * Unknown task status on Choice step.\n */\n UnknownStatus: {\n Type: StepFunctionDefinitionStatesType.Fail,\n Cause: \"Fatal error - unknown status.\"\n },\n /**\n * Fail the task and output the error.\n */\n Error: {\n Type: StepFunctionDefinitionStatesType.Fail,\n CausePath: \"States.JsonToString($.error)\",\n ErrorPath: \"$.error.message\"\n },\n /**\n * Complete the task.\n */\n Done: {\n Type: StepFunctionDefinitionStatesType.Succeed\n },\n Aborted: {\n Type: StepFunctionDefinitionStatesType.Succeed\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","createBackgroundTaskDefinition","params","lambdaName","lambdaArn","Comment","StartAt","States","TransformEvent","Type","StepFunctionDefinitionStatesType","Pass","Next","Parameters","Run","Task","Resource","ResultPath","InputPath","name","payload","endpoint","Catch","ErrorEquals","CheckStatus","Choice","Choices","Variable","IsNull","And","StringEquals","IsPresent","IsNumeric","NumericGreaterThan","Default","Waiter","Wait","SecondsPath","UnknownError","Fail","Cause","UnknownStatus","Error","CausePath","ErrorPath","Done","Succeed","Aborted","exports"],"sources":["definition.ts"],"sourcesContent":["import type * as pulumi from \"@pulumi/pulumi\";\nimport type { StepFunctionDefinition } from \"./types\";\nimport { StepFunctionDefinitionStatesType } from \"./types\";\n\nexport interface BackgroundTaskParams {\n lambdaName: string;\n lambdaArn: pulumi.Input<string>;\n}\n\nexport const createBackgroundTaskDefinition = (\n params: BackgroundTaskParams\n): StepFunctionDefinition => {\n const { lambdaName, lambdaArn } = params;\n return {\n Comment: \"Background tasks\",\n StartAt: \"TransformEvent\",\n States: {\n /**\n * Transform the EventBridge event to a format that will be used in the Lambda.\n */\n TransformEvent: {\n Type: StepFunctionDefinitionStatesType.Pass,\n Next: \"Run\",\n Parameters: {\n \"webinyTaskId.$\": \"$.detail.webinyTaskId\",\n \"webinyTaskDefinitionId.$\": \"$.detail.webinyTaskDefinitionId\",\n \"tenant.$\": \"$.detail.tenant\",\n \"locale.$\": \"$.detail.locale\",\n \"delay.$\": \"$.detail.delay\"\n }\n },\n /**\n * Run the task and wait for the response from lambda.\n * On some fatal error go to Error step.\n * In other cases, check the status of the task.\n */\n Run: {\n Type: StepFunctionDefinitionStatesType.Task,\n Resource: lambdaArn,\n Next: \"CheckStatus\",\n ResultPath: \"$\",\n InputPath: \"$\",\n /**\n * Parameters will be received as an event in the Lambda.\n * Task Handler determines that it can run a task based on the Payload.webinyTaskId parameter - it must be set!\n */\n Parameters: {\n name: lambdaName,\n payload: {\n \"webinyTaskId.$\": \"$.webinyTaskId\",\n \"webinyTaskDefinitionId.$\": \"$.webinyTaskDefinitionId\",\n \"locale.$\": \"$.locale\",\n \"tenant.$\": \"$.tenant\",\n \"delay.$\": \"$.delay\",\n endpoint: \"manage\",\n \"executionName.$\": \"$$.Execution.Name\",\n \"stateMachineId.$\": \"$$.StateMachine.Id\"\n }\n },\n Catch: [\n {\n ErrorEquals: [\"States.ALL\"],\n Next: \"UnknownError\"\n }\n ]\n },\n /**\n * On CONTINUE, go back to Run.\n * On ERROR, go to Error step.\n * On DONE, go to Done step.\n */\n CheckStatus: {\n Type: StepFunctionDefinitionStatesType.Choice,\n InputPath: \"$\",\n Choices: [\n /**\n * There is a possibility that the task will return a CONTINUE status and a waitUntil value.\n * This means that task will wait for the specified time and then continue.\n * It can be used to handle waiting for child tasks or some resource to be created.\n */\n {\n Variable: \"$\",\n IsNull: true,\n Next: \"UnknownError\"\n },\n {\n And: [\n {\n Variable: \"$.status\",\n StringEquals: \"continue\"\n },\n {\n Variable: \"$.wait\",\n IsPresent: true\n },\n {\n Variable: \"$.wait\",\n IsNumeric: true\n },\n {\n Variable: \"$.wait\",\n NumericGreaterThan: 0\n }\n ],\n Next: \"Waiter\"\n },\n /**\n * When no wait value is present, go to Run.\n */\n {\n Variable: \"$.status\",\n StringEquals: \"continue\",\n Next: \"Run\"\n },\n {\n Variable: \"$.status\",\n StringEquals: \"error\",\n Next: \"Error\"\n },\n {\n Variable: \"$.status\",\n StringEquals: \"done\",\n Next: \"Done\"\n },\n {\n Variable: \"$.status\",\n StringEquals: \"aborted\",\n Next: \"Aborted\"\n }\n ],\n Default: \"UnknownStatus\"\n },\n Waiter: {\n Type: StepFunctionDefinitionStatesType.Wait,\n SecondsPath: \"$.wait\",\n Next: \"Run\"\n },\n UnknownError: {\n Type: StepFunctionDefinitionStatesType.Fail,\n Cause: \"Fatal error - unknown task error.\"\n },\n /**\n * Unknown task status on Choice step.\n */\n UnknownStatus: {\n Type: StepFunctionDefinitionStatesType.Fail,\n Cause: \"Fatal error - unknown status.\"\n },\n /**\n * Fail the task and output the error.\n */\n Error: {\n Type: StepFunctionDefinitionStatesType.Fail,\n CausePath: \"States.JsonToString($.error)\",\n ErrorPath: \"$.error.message\"\n },\n /**\n * Complete the task.\n */\n Done: {\n Type: StepFunctionDefinitionStatesType.Succeed\n },\n Aborted: {\n Type: StepFunctionDefinitionStatesType.Succeed\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { PulumiApp } from "@webiny/pulumi";
2
- import * as pulumi from "@pulumi/pulumi";
1
+ import type { PulumiApp } from "@webiny/pulumi";
2
+ import type * as pulumi from "@pulumi/pulumi";
3
3
  interface Params {
4
4
  name: string;
5
5
  lambdaFunctionArn: pulumi.Input<string>;
@@ -1 +1 @@
1
- {"version":3,"names":["aws","_interopRequireWildcard","require","createBackgroundTaskStepFunctionPolicy","app","params","name","lambdaFunctionArn","addResource","iam","Policy","config","policy","Version","Statement","Effect","Action","Resource","exports"],"sources":["policy.ts"],"sourcesContent":["import { PulumiApp } from \"@webiny/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as pulumi from \"@pulumi/pulumi\";\n\ninterface Params {\n name: string;\n lambdaFunctionArn: pulumi.Input<string>;\n}\n\nexport const createBackgroundTaskStepFunctionPolicy = (app: PulumiApp, params: Params) => {\n const { name, lambdaFunctionArn } = params;\n return app.addResource(aws.iam.Policy, {\n name,\n config: {\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Effect: \"Allow\",\n Action: [\"lambda:InvokeFunction\"],\n Resource: lambdaFunctionArn\n },\n {\n Effect: \"Allow\",\n Action: [\n \"logs:CreateLogDelivery\",\n \"logs:CreateLogStream\",\n \"logs:GetLogDelivery\",\n \"logs:UpdateLogDelivery\",\n \"logs:DeleteLogDelivery\",\n \"logs:ListLogDeliveries\",\n \"logs:PutLogEvents\",\n \"logs:PutResourcePolicy\",\n \"logs:DescribeResourcePolicies\",\n \"logs:DescribeLogGroups\"\n ],\n Resource: \"*\"\n }\n ]\n }\n }\n });\n};\n"],"mappings":";;;;;;;AACA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AAQO,MAAMC,sCAAsC,GAAGA,CAACC,GAAc,EAAEC,MAAc,KAAK;EACtF,MAAM;IAAEC,IAAI;IAAEC;EAAkB,CAAC,GAAGF,MAAM;EAC1C,OAAOD,GAAG,CAACI,WAAW,CAACR,GAAG,CAACS,GAAG,CAACC,MAAM,EAAE;IACnCJ,IAAI;IACJK,MAAM,EAAE;MACJC,MAAM,EAAE;QACJC,OAAO,EAAE,YAAY;QACrBC,SAAS,EAAE,CACP;UACIC,MAAM,EAAE,OAAO;UACfC,MAAM,EAAE,CAAC,uBAAuB,CAAC;UACjCC,QAAQ,EAAEV;QACd,CAAC,EACD;UACIQ,MAAM,EAAE,OAAO;UACfC,MAAM,EAAE,CACJ,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,CAC3B;UACDC,QAAQ,EAAE;QACd,CAAC;MAET;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAf,sCAAA,GAAAA,sCAAA","ignoreList":[]}
1
+ {"version":3,"names":["aws","_interopRequireWildcard","require","createBackgroundTaskStepFunctionPolicy","app","params","name","lambdaFunctionArn","addResource","iam","Policy","config","policy","Version","Statement","Effect","Action","Resource","exports"],"sources":["policy.ts"],"sourcesContent":["import type { PulumiApp } from \"@webiny/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport type * as pulumi from \"@pulumi/pulumi\";\n\ninterface Params {\n name: string;\n lambdaFunctionArn: pulumi.Input<string>;\n}\n\nexport const createBackgroundTaskStepFunctionPolicy = (app: PulumiApp, params: Params) => {\n const { name, lambdaFunctionArn } = params;\n return app.addResource(aws.iam.Policy, {\n name,\n config: {\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Effect: \"Allow\",\n Action: [\"lambda:InvokeFunction\"],\n Resource: lambdaFunctionArn\n },\n {\n Effect: \"Allow\",\n Action: [\n \"logs:CreateLogDelivery\",\n \"logs:CreateLogStream\",\n \"logs:GetLogDelivery\",\n \"logs:UpdateLogDelivery\",\n \"logs:DeleteLogDelivery\",\n \"logs:ListLogDeliveries\",\n \"logs:PutLogEvents\",\n \"logs:PutResourcePolicy\",\n \"logs:DescribeResourcePolicies\",\n \"logs:DescribeLogGroups\"\n ],\n Resource: \"*\"\n }\n ]\n }\n }\n });\n};\n"],"mappings":";;;;;;;AACA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AAQO,MAAMC,sCAAsC,GAAGA,CAACC,GAAc,EAAEC,MAAc,KAAK;EACtF,MAAM;IAAEC,IAAI;IAAEC;EAAkB,CAAC,GAAGF,MAAM;EAC1C,OAAOD,GAAG,CAACI,WAAW,CAACR,GAAG,CAACS,GAAG,CAACC,MAAM,EAAE;IACnCJ,IAAI;IACJK,MAAM,EAAE;MACJC,MAAM,EAAE;QACJC,OAAO,EAAE,YAAY;QACrBC,SAAS,EAAE,CACP;UACIC,MAAM,EAAE,OAAO;UACfC,MAAM,EAAE,CAAC,uBAAuB,CAAC;UACjCC,QAAQ,EAAEV;QACd,CAAC,EACD;UACIQ,MAAM,EAAE,OAAO;UACfC,MAAM,EAAE,CACJ,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,CAC3B;UACDC,QAAQ,EAAE;QACd,CAAC;MAET;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAf,sCAAA,GAAAA,sCAAA","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { PulumiApp } from "@webiny/pulumi";
1
+ import type { PulumiApp } from "@webiny/pulumi";
2
2
  import * as aws from "@pulumi/aws";
3
- import * as pulumi from "@pulumi/pulumi";
3
+ import type * as pulumi from "@pulumi/pulumi";
4
4
  interface Params {
5
5
  name: string;
6
6
  policy: pulumi.Output<aws.iam.Policy>;
@@ -1 +1 @@
1
- {"version":3,"names":["aws","_interopRequireWildcard","require","createBackgroundTaskStepFunctionRole","app","params","name","policy","role","addResource","iam","Role","config","assumeRolePolicy","Version","Statement","Action","Principal","Service","Effect","RolePolicyAttachment","output","policyArn","arn","exports"],"sources":["role.ts"],"sourcesContent":["import { PulumiApp } from \"@webiny/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as pulumi from \"@pulumi/pulumi\";\n\ninterface Params {\n name: string;\n policy: pulumi.Output<aws.iam.Policy>;\n}\n\nexport const createBackgroundTaskStepFunctionRole = (app: PulumiApp, params: Params) => {\n const { name, policy } = params;\n const role = app.addResource(aws.iam.Role, {\n name,\n config: {\n assumeRolePolicy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: \"sts:AssumeRole\",\n Principal: {\n Service: \"states.amazonaws.com\"\n },\n Effect: \"Allow\"\n }\n ]\n }\n }\n });\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${name}Policy`,\n config: {\n role: role.output,\n policyArn: policy.arn\n }\n });\n\n return role;\n};\n"],"mappings":";;;;;;;AACA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AAQO,MAAMC,oCAAoC,GAAGA,CAACC,GAAc,EAAEC,MAAc,KAAK;EACpF,MAAM;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAC/B,MAAMG,IAAI,GAAGJ,GAAG,CAACK,WAAW,CAACT,GAAG,CAACU,GAAG,CAACC,IAAI,EAAE;IACvCL,IAAI;IACJM,MAAM,EAAE;MACJC,gBAAgB,EAAE;QACdC,OAAO,EAAE,YAAY;QACrBC,SAAS,EAAE,CACP;UACIC,MAAM,EAAE,gBAAgB;UACxBC,SAAS,EAAE;YACPC,OAAO,EAAE;UACb,CAAC;UACDC,MAAM,EAAE;QACZ,CAAC;MAET;IACJ;EACJ,CAAC,CAAC;EACFf,GAAG,CAACK,WAAW,CAACT,GAAG,CAACU,GAAG,CAACU,oBAAoB,EAAE;IAC1Cd,IAAI,EAAE,GAAGA,IAAI,QAAQ;IACrBM,MAAM,EAAE;MACJJ,IAAI,EAAEA,IAAI,CAACa,MAAM;MACjBC,SAAS,EAAEf,MAAM,CAACgB;IACtB;EACJ,CAAC,CAAC;EAEF,OAAOf,IAAI;AACf,CAAC;AAACgB,OAAA,CAAArB,oCAAA,GAAAA,oCAAA","ignoreList":[]}
1
+ {"version":3,"names":["aws","_interopRequireWildcard","require","createBackgroundTaskStepFunctionRole","app","params","name","policy","role","addResource","iam","Role","config","assumeRolePolicy","Version","Statement","Action","Principal","Service","Effect","RolePolicyAttachment","output","policyArn","arn","exports"],"sources":["role.ts"],"sourcesContent":["import type { PulumiApp } from \"@webiny/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport type * as pulumi from \"@pulumi/pulumi\";\n\ninterface Params {\n name: string;\n policy: pulumi.Output<aws.iam.Policy>;\n}\n\nexport const createBackgroundTaskStepFunctionRole = (app: PulumiApp, params: Params) => {\n const { name, policy } = params;\n const role = app.addResource(aws.iam.Role, {\n name,\n config: {\n assumeRolePolicy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: \"sts:AssumeRole\",\n Principal: {\n Service: \"states.amazonaws.com\"\n },\n Effect: \"Allow\"\n }\n ]\n }\n }\n });\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${name}Policy`,\n config: {\n role: role.output,\n policyArn: policy.arn\n }\n });\n\n return role;\n};\n"],"mappings":";;;;;;;AACA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AAQO,MAAMC,oCAAoC,GAAGA,CAACC,GAAc,EAAEC,MAAc,KAAK;EACpF,MAAM;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAC/B,MAAMG,IAAI,GAAGJ,GAAG,CAACK,WAAW,CAACT,GAAG,CAACU,GAAG,CAACC,IAAI,EAAE;IACvCL,IAAI;IACJM,MAAM,EAAE;MACJC,gBAAgB,EAAE;QACdC,OAAO,EAAE,YAAY;QACrBC,SAAS,EAAE,CACP;UACIC,MAAM,EAAE,gBAAgB;UACxBC,SAAS,EAAE;YACPC,OAAO,EAAE;UACb,CAAC;UACDC,MAAM,EAAE;QACZ,CAAC;MAET;IACJ;EACJ,CAAC,CAAC;EACFf,GAAG,CAACK,WAAW,CAACT,GAAG,CAACU,GAAG,CAACU,oBAAoB,EAAE;IAC1Cd,IAAI,EAAE,GAAGA,IAAI,QAAQ;IACrBM,MAAM,EAAE;MACJJ,IAAI,EAAEA,IAAI,CAACa,MAAM;MACjBC,SAAS,EAAEf,MAAM,CAACgB;IACtB;EACJ,CAAC,CAAC;EAEF,OAAOf,IAAI;AACf,CAAC;AAACgB,OAAA,CAAArB,oCAAA,GAAAA,oCAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import * as pulumi from "@pulumi/pulumi";
1
+ import type * as pulumi from "@pulumi/pulumi";
2
2
  /**
3
3
  * Update types if required. Try to avoid generic objects
4
4
  */