@studion/infra-code-blocks 0.8.0-next.2 → 2.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 (184) hide show
  1. package/dist/components/acm-certificate/index.d.ts +20 -0
  2. package/dist/components/acm-certificate/index.d.ts.map +1 -0
  3. package/dist/components/acm-certificate/index.js +40 -0
  4. package/dist/components/cloudfront/index.d.ts +97 -0
  5. package/dist/components/cloudfront/index.d.ts.map +1 -0
  6. package/dist/components/cloudfront/index.js +215 -0
  7. package/dist/components/cloudfront/lb-cache-strategy.d.ts +21 -0
  8. package/dist/components/cloudfront/lb-cache-strategy.d.ts.map +1 -0
  9. package/dist/components/cloudfront/lb-cache-strategy.js +93 -0
  10. package/dist/components/cloudfront/s3-cache-strategy.d.ts +22 -0
  11. package/dist/components/cloudfront/s3-cache-strategy.d.ts.map +1 -0
  12. package/dist/components/cloudfront/s3-cache-strategy.js +79 -0
  13. package/dist/components/cloudfront/types.d.ts +10 -0
  14. package/dist/components/cloudfront/types.d.ts.map +1 -0
  15. package/dist/components/database/builder.d.ts +32 -0
  16. package/dist/components/database/builder.d.ts.map +1 -0
  17. package/dist/components/database/builder.js +82 -0
  18. package/dist/components/database/database-replica.d.ts +35 -0
  19. package/dist/components/database/database-replica.d.ts.map +1 -0
  20. package/dist/components/database/database-replica.js +40 -0
  21. package/dist/components/database/ec2-ssm-connect.d.ts +26 -0
  22. package/dist/components/database/ec2-ssm-connect.d.ts.map +1 -0
  23. package/dist/components/{ec2-ssm-connect.js → database/ec2-ssm-connect.js} +42 -34
  24. package/dist/components/database/index.d.ts +67 -0
  25. package/dist/components/database/index.d.ts.map +1 -0
  26. package/dist/components/database/index.js +144 -0
  27. package/dist/{v2/components → components}/ecs-service/index.d.ts +4 -3
  28. package/dist/components/ecs-service/index.d.ts.map +1 -0
  29. package/dist/{v2/components → components}/ecs-service/index.js +18 -29
  30. package/dist/components/ecs-service/policies.d.ts.map +1 -0
  31. package/dist/components/ecs-service/task-size.d.ts +37 -0
  32. package/dist/components/ecs-service/task-size.d.ts.map +1 -0
  33. package/dist/{constants.js → components/ecs-service/task-size.js} +17 -7
  34. package/dist/components/grafana/dashboards/index.d.ts.map +1 -0
  35. package/dist/components/grafana/dashboards/panels.d.ts.map +1 -0
  36. package/dist/components/grafana/dashboards/types.d.ts.map +1 -0
  37. package/dist/components/grafana/dashboards/web-server-slo.d.ts.map +1 -0
  38. package/dist/components/grafana/index.d.ts.map +1 -0
  39. package/dist/components/{password.d.ts → password/index.d.ts} +7 -5
  40. package/dist/components/password/index.d.ts.map +1 -0
  41. package/dist/components/{password.js → password/index.js} +5 -8
  42. package/dist/components/prometheus/index.d.ts.map +1 -0
  43. package/dist/components/prometheus/queries.d.ts.map +1 -0
  44. package/dist/components/prometheus/queries.test.d.ts.map +1 -0
  45. package/dist/components/redis/elasticache-redis.d.ts +38 -0
  46. package/dist/components/redis/elasticache-redis.d.ts.map +1 -0
  47. package/dist/components/redis/elasticache-redis.js +58 -0
  48. package/dist/components/redis/upstash-redis.d.ts +20 -0
  49. package/dist/components/redis/upstash-redis.d.ts.map +1 -0
  50. package/dist/components/redis/upstash-redis.js +29 -0
  51. package/dist/components/static-site/cache-rule-ttl.d.ts +13 -0
  52. package/dist/components/static-site/cache-rule-ttl.d.ts.map +1 -0
  53. package/dist/components/static-site/cache-rule-ttl.js +18 -0
  54. package/dist/components/static-site/index.d.ts +47 -0
  55. package/dist/components/static-site/index.d.ts.map +1 -0
  56. package/dist/components/static-site/index.js +45 -0
  57. package/dist/components/static-site/s3-assets.d.ts +20 -0
  58. package/dist/components/static-site/s3-assets.d.ts.map +1 -0
  59. package/dist/components/static-site/s3-assets.js +63 -0
  60. package/dist/components/vpc/index.d.ts +20 -0
  61. package/dist/components/vpc/index.d.ts.map +1 -0
  62. package/dist/components/vpc/index.js +31 -0
  63. package/dist/{v2/components → components}/web-server/builder.d.ts +5 -1
  64. package/dist/components/web-server/builder.d.ts.map +1 -0
  65. package/dist/{v2/components → components}/web-server/builder.js +11 -1
  66. package/dist/{v2/components → components}/web-server/index.d.ts +29 -7
  67. package/dist/components/web-server/index.d.ts.map +1 -0
  68. package/dist/{v2/components → components}/web-server/index.js +48 -39
  69. package/dist/{v2/components → components}/web-server/load-balancer.d.ts +2 -1
  70. package/dist/components/web-server/load-balancer.d.ts.map +1 -0
  71. package/dist/{v2/components → components}/web-server/load-balancer.js +16 -13
  72. package/dist/index.d.ts +24 -11
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +38 -26
  75. package/dist/otel/batch-processor.d.ts.map +1 -0
  76. package/dist/{v2/otel → otel}/builder.d.ts +14 -1
  77. package/dist/otel/builder.d.ts.map +1 -0
  78. package/dist/{v2/otel → otel}/builder.js +47 -2
  79. package/dist/{v2/otel → otel}/config.d.ts +13 -1
  80. package/dist/otel/config.d.ts.map +1 -0
  81. package/dist/{v2/otel → otel}/config.js +20 -3
  82. package/dist/{v2/otel → otel}/index.d.ts +8 -0
  83. package/dist/otel/index.d.ts.map +1 -0
  84. package/dist/otel/memory-limiter-processor.d.ts.map +1 -0
  85. package/dist/otel/otlp-receiver.d.ts.map +1 -0
  86. package/dist/otel/prometheus-remote-write-exporter.d.ts.map +1 -0
  87. package/dist/shared/common-tags.d.ts +5 -0
  88. package/dist/shared/common-tags.d.ts.map +1 -0
  89. package/dist/shared/common-tags.js +8 -0
  90. package/dist/shared/merge-with-defaults.d.ts +2 -0
  91. package/dist/shared/merge-with-defaults.d.ts.map +1 -0
  92. package/dist/shared/merge-with-defaults.js +7 -0
  93. package/package.json +35 -16
  94. package/dist/components/acm-certificate.d.ts +0 -11
  95. package/dist/components/acm-certificate.d.ts.map +0 -1
  96. package/dist/components/acm-certificate.js +0 -30
  97. package/dist/components/database-replica.d.ts +0 -69
  98. package/dist/components/database-replica.d.ts.map +0 -1
  99. package/dist/components/database-replica.js +0 -40
  100. package/dist/components/database.d.ts +0 -99
  101. package/dist/components/database.d.ts.map +0 -1
  102. package/dist/components/database.js +0 -118
  103. package/dist/components/ec2-ssm-connect.d.ts +0 -22
  104. package/dist/components/ec2-ssm-connect.d.ts.map +0 -1
  105. package/dist/components/ecs-service.d.ts +0 -143
  106. package/dist/components/ecs-service.d.ts.map +0 -1
  107. package/dist/components/ecs-service.js +0 -357
  108. package/dist/components/mongo.d.ts +0 -39
  109. package/dist/components/mongo.d.ts.map +0 -1
  110. package/dist/components/mongo.js +0 -54
  111. package/dist/components/nuxt-ssr.d.ts +0 -44
  112. package/dist/components/nuxt-ssr.d.ts.map +0 -1
  113. package/dist/components/nuxt-ssr.js +0 -277
  114. package/dist/components/password.d.ts.map +0 -1
  115. package/dist/components/project.d.ts +0 -77
  116. package/dist/components/project.d.ts.map +0 -1
  117. package/dist/components/project.js +0 -171
  118. package/dist/components/redis.d.ts +0 -23
  119. package/dist/components/redis.d.ts.map +0 -1
  120. package/dist/components/redis.js +0 -35
  121. package/dist/components/static-site.d.ts +0 -36
  122. package/dist/components/static-site.d.ts.map +0 -1
  123. package/dist/components/static-site.js +0 -138
  124. package/dist/components/web-server.d.ts +0 -38
  125. package/dist/components/web-server.d.ts.map +0 -1
  126. package/dist/components/web-server.js +0 -185
  127. package/dist/constants.d.ts +0 -23
  128. package/dist/constants.d.ts.map +0 -1
  129. package/dist/types/pulumi.d.ts +0 -5
  130. package/dist/types/pulumi.d.ts.map +0 -1
  131. package/dist/types/size.d.ts +0 -8
  132. package/dist/types/size.d.ts.map +0 -1
  133. package/dist/types/size.js +0 -2
  134. package/dist/v2/components/ecs-service/index.d.ts.map +0 -1
  135. package/dist/v2/components/ecs-service/policies.d.ts.map +0 -1
  136. package/dist/v2/components/grafana/dashboards/index.d.ts.map +0 -1
  137. package/dist/v2/components/grafana/dashboards/panels.d.ts.map +0 -1
  138. package/dist/v2/components/grafana/dashboards/types.d.ts.map +0 -1
  139. package/dist/v2/components/grafana/dashboards/web-server-slo.d.ts.map +0 -1
  140. package/dist/v2/components/grafana/index.d.ts.map +0 -1
  141. package/dist/v2/components/prometheus/index.d.ts.map +0 -1
  142. package/dist/v2/components/prometheus/queries.d.ts.map +0 -1
  143. package/dist/v2/components/prometheus/queries.test.d.ts.map +0 -1
  144. package/dist/v2/components/web-server/builder.d.ts.map +0 -1
  145. package/dist/v2/components/web-server/index.d.ts.map +0 -1
  146. package/dist/v2/components/web-server/load-balancer.d.ts.map +0 -1
  147. package/dist/v2/index.d.ts +0 -13
  148. package/dist/v2/index.d.ts.map +0 -1
  149. package/dist/v2/index.js +0 -16
  150. package/dist/v2/otel/batch-processor.d.ts.map +0 -1
  151. package/dist/v2/otel/builder.d.ts.map +0 -1
  152. package/dist/v2/otel/config.d.ts.map +0 -1
  153. package/dist/v2/otel/index.d.ts.map +0 -1
  154. package/dist/v2/otel/memory-limiter-processor.d.ts.map +0 -1
  155. package/dist/v2/otel/otlp-receiver.d.ts.map +0 -1
  156. package/dist/v2/otel/prometheus-remote-write-exporter.d.ts.map +0 -1
  157. /package/dist/{v2/components/grafana/dashboards → components/cloudfront}/types.js +0 -0
  158. /package/dist/{v2/components → components}/ecs-service/policies.d.ts +0 -0
  159. /package/dist/{v2/components → components}/ecs-service/policies.js +0 -0
  160. /package/dist/{v2/components → components}/grafana/dashboards/index.d.ts +0 -0
  161. /package/dist/{v2/components → components}/grafana/dashboards/index.js +0 -0
  162. /package/dist/{v2/components → components}/grafana/dashboards/panels.d.ts +0 -0
  163. /package/dist/{v2/components → components}/grafana/dashboards/panels.js +0 -0
  164. /package/dist/{v2/components → components}/grafana/dashboards/types.d.ts +0 -0
  165. /package/dist/{types/pulumi.js → components/grafana/dashboards/types.js} +0 -0
  166. /package/dist/{v2/components → components}/grafana/dashboards/web-server-slo.d.ts +0 -0
  167. /package/dist/{v2/components → components}/grafana/dashboards/web-server-slo.js +0 -0
  168. /package/dist/{v2/components → components}/grafana/index.d.ts +0 -0
  169. /package/dist/{v2/components → components}/grafana/index.js +0 -0
  170. /package/dist/{v2/components → components}/prometheus/index.d.ts +0 -0
  171. /package/dist/{v2/components → components}/prometheus/index.js +0 -0
  172. /package/dist/{v2/components → components}/prometheus/queries.d.ts +0 -0
  173. /package/dist/{v2/components → components}/prometheus/queries.js +0 -0
  174. /package/dist/{v2/components → components}/prometheus/queries.test.d.ts +0 -0
  175. /package/dist/{v2/components → components}/prometheus/queries.test.js +0 -0
  176. /package/dist/{v2/otel → otel}/batch-processor.d.ts +0 -0
  177. /package/dist/{v2/otel → otel}/batch-processor.js +0 -0
  178. /package/dist/{v2/otel → otel}/index.js +0 -0
  179. /package/dist/{v2/otel → otel}/memory-limiter-processor.d.ts +0 -0
  180. /package/dist/{v2/otel → otel}/memory-limiter-processor.js +0 -0
  181. /package/dist/{v2/otel → otel}/otlp-receiver.d.ts +0 -0
  182. /package/dist/{v2/otel → otel}/otlp-receiver.js +0 -0
  183. /package/dist/{v2/otel → otel}/prometheus-remote-write-exporter.d.ts +0 -0
  184. /package/dist/{v2/otel → otel}/prometheus-remote-write-exporter.js +0 -0
@@ -1,99 +0,0 @@
1
- import * as aws from '@pulumi/aws';
2
- import * as pulumi from '@pulumi/pulumi';
3
- import { Password } from './password';
4
- export type DatabaseArgs = {
5
- /**
6
- * The name of the database to create when the DB instance is created.
7
- */
8
- dbName: pulumi.Input<string>;
9
- /**
10
- * Username for the master DB user.
11
- */
12
- username: pulumi.Input<string>;
13
- vpcId: pulumi.Input<string>;
14
- isolatedSubnetIds: pulumi.Input<pulumi.Input<string>[]>;
15
- /**
16
- * The IPv4 CIDR block for the VPC.
17
- */
18
- vpcCidrBlock: pulumi.Input<string>;
19
- /**
20
- * Specifies if the RDS instance is multi-AZ. Defaults to false.
21
- */
22
- multiAz?: pulumi.Input<boolean>;
23
- /**
24
- * Password for the master DB user. If not specified it will be autogenerated.
25
- * The value will be stored as a secret in AWS Secret Manager.
26
- */
27
- password?: pulumi.Input<string>;
28
- /**
29
- * Specifies whether any database modifications are applied immediately,
30
- * or during the next maintenance window. Default is false.
31
- */
32
- applyImmediately?: pulumi.Input<boolean>;
33
- /**
34
- * Determines whether a final DB snapshot is created before the DB
35
- * instance is deleted. Defaults to false.
36
- */
37
- skipFinalSnapshot?: pulumi.Input<boolean>;
38
- /**
39
- * The allocated storage in gibibytes. Defaults to 20GB.
40
- */
41
- allocatedStorage?: pulumi.Input<number>;
42
- /**
43
- * The upper limit to which Amazon RDS can automatically scale
44
- * the storage of the DB instance. Defaults to 100GB.
45
- */
46
- maxAllocatedStorage?: pulumi.Input<number>;
47
- /**
48
- * The instance type of the RDS instance. Defaults to 'db.t4g.micro'.
49
- */
50
- instanceClass?: pulumi.Input<string>;
51
- /**
52
- * Set this to true to enable database monitoring. Defaults to false.
53
- */
54
- enableMonitoring?: pulumi.Input<boolean>;
55
- /**
56
- * Set this to true to allow major version upgrades, for example when creating
57
- * db from the snapshot. Defaults to false.
58
- */
59
- allowMajorVersionUpgrade?: pulumi.Input<boolean>;
60
- /**
61
- * The name of custom aws.rds.ParameterGroup. Setting this param will apply custom
62
- * DB parameters to this instance.
63
- */
64
- parameterGroupName?: pulumi.Input<string>;
65
- /**
66
- * Specifies whether to create this database from a snapshot.
67
- * This correlates to the snapshot ID you'd find in the RDS console,
68
- * e.g: rds:production-2015-06-26-06-05.
69
- */
70
- snapshotIdentifier?: pulumi.Input<string>;
71
- /**
72
- * The DB engine version. Defaults to '17.2'.
73
- */
74
- engineVersion?: pulumi.Input<string>;
75
- /**
76
- * A map of tags to assign to the resource.
77
- */
78
- tags?: pulumi.Input<{
79
- [key: string]: pulumi.Input<string>;
80
- }>;
81
- };
82
- export declare class Database extends pulumi.ComponentResource {
83
- name: string;
84
- instance: aws.rds.Instance;
85
- kms: aws.kms.Key;
86
- dbSubnetGroup: aws.rds.SubnetGroup;
87
- dbSecurityGroup: aws.ec2.SecurityGroup;
88
- password: Password;
89
- encryptedSnapshotCopy?: aws.rds.SnapshotCopy;
90
- monitoringRole?: aws.iam.Role;
91
- constructor(name: string, args: DatabaseArgs, opts?: pulumi.ComponentResourceOptions);
92
- private createSubnetGroup;
93
- private createSecurityGroup;
94
- private createEncryptionKey;
95
- private createMonitoringRole;
96
- private createEncryptedSnapshotCopy;
97
- private createDatabaseInstance;
98
- }
99
- //# sourceMappingURL=database.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/components/database.ts"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Database = void 0;
4
- const aws = require("@pulumi/aws");
5
- const pulumi = require("@pulumi/pulumi");
6
- const password_1 = require("./password");
7
- const constants_1 = require("../constants");
8
- const defaults = {
9
- multiAz: false,
10
- applyImmediately: false,
11
- skipFinalSnapshot: false,
12
- allocatedStorage: 20,
13
- maxAllocatedStorage: 100,
14
- instanceClass: 'db.t4g.micro',
15
- enableMonitoring: false,
16
- allowMajorVersionUpgrade: false,
17
- engineVersion: '17.2',
18
- };
19
- class Database extends pulumi.ComponentResource {
20
- constructor(name, args, opts = {}) {
21
- super('studion:Database', name, {}, opts);
22
- this.name = name;
23
- const argsWithDefaults = Object.assign({}, defaults, args);
24
- const { vpcId, isolatedSubnetIds, vpcCidrBlock, enableMonitoring, snapshotIdentifier, } = argsWithDefaults;
25
- this.dbSubnetGroup = this.createSubnetGroup({ isolatedSubnetIds });
26
- this.dbSecurityGroup = this.createSecurityGroup({ vpcId, vpcCidrBlock });
27
- this.kms = this.createEncryptionKey();
28
- this.password = new password_1.Password(`${this.name}-database-password`, { value: args.password }, { parent: this });
29
- if (enableMonitoring) {
30
- this.monitoringRole = this.createMonitoringRole();
31
- }
32
- if (snapshotIdentifier) {
33
- this.encryptedSnapshotCopy =
34
- this.createEncryptedSnapshotCopy(snapshotIdentifier);
35
- }
36
- this.instance = this.createDatabaseInstance(args);
37
- this.registerOutputs();
38
- }
39
- createSubnetGroup({ isolatedSubnetIds, }) {
40
- const dbSubnetGroup = new aws.rds.SubnetGroup(`${this.name}-subnet-group`, {
41
- subnetIds: isolatedSubnetIds,
42
- tags: constants_1.commonTags,
43
- }, { parent: this });
44
- return dbSubnetGroup;
45
- }
46
- createSecurityGroup({ vpcId, vpcCidrBlock, }) {
47
- const dbSecurityGroup = new aws.ec2.SecurityGroup(`${this.name}-security-group`, {
48
- vpcId,
49
- ingress: [
50
- {
51
- protocol: 'tcp',
52
- fromPort: 5432,
53
- toPort: 5432,
54
- cidrBlocks: [vpcCidrBlock],
55
- },
56
- ],
57
- tags: constants_1.commonTags,
58
- }, { parent: this });
59
- return dbSecurityGroup;
60
- }
61
- createEncryptionKey() {
62
- const kms = new aws.kms.Key(`${this.name}-rds-key`, {
63
- description: `${this.name} RDS encryption key`,
64
- customerMasterKeySpec: 'SYMMETRIC_DEFAULT',
65
- isEnabled: true,
66
- keyUsage: 'ENCRYPT_DECRYPT',
67
- multiRegion: false,
68
- enableKeyRotation: true,
69
- tags: constants_1.commonTags,
70
- }, { parent: this });
71
- return kms;
72
- }
73
- createMonitoringRole() {
74
- const monitoringRole = new aws.iam.Role(`${this.name}-rds-monitoring`, {
75
- assumeRolePolicy: {
76
- Version: '2012-10-17',
77
- Statement: [
78
- {
79
- Action: 'sts:AssumeRole',
80
- Effect: 'Allow',
81
- Principal: {
82
- Service: 'monitoring.rds.amazonaws.com',
83
- },
84
- },
85
- ],
86
- },
87
- });
88
- new aws.iam.RolePolicyAttachment(`${this.name}-rds-monitoring-role-attachment`, {
89
- role: monitoringRole.name,
90
- policyArn: 'arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole',
91
- });
92
- return monitoringRole;
93
- }
94
- createEncryptedSnapshotCopy(snapshotIdentifier) {
95
- const encryptedSnapshotCopy = new aws.rds.SnapshotCopy(`${this.name}-encrypted-snapshot-copy`, {
96
- sourceDbSnapshotIdentifier: snapshotIdentifier,
97
- targetDbSnapshotIdentifier: `${snapshotIdentifier}-encrypted-copy`,
98
- kmsKeyId: this.kms.arn,
99
- }, { parent: this });
100
- return encryptedSnapshotCopy;
101
- }
102
- createDatabaseInstance(args) {
103
- var _a;
104
- const argsWithDefaults = Object.assign({}, defaults, args);
105
- const stack = pulumi.getStack();
106
- const monitoringOptions = argsWithDefaults.enableMonitoring && this.monitoringRole
107
- ? {
108
- monitoringInterval: 60,
109
- monitoringRoleArn: this.monitoringRole.arn,
110
- performanceInsightsEnabled: true,
111
- performanceInsightsRetentionPeriod: 7,
112
- }
113
- : {};
114
- const instance = new aws.rds.Instance(`${this.name}-rds`, Object.assign(Object.assign({ identifierPrefix: `${this.name}-`, engine: 'postgres', engineVersion: argsWithDefaults.engineVersion, allocatedStorage: argsWithDefaults.allocatedStorage, maxAllocatedStorage: argsWithDefaults.maxAllocatedStorage, instanceClass: argsWithDefaults.instanceClass, dbName: argsWithDefaults.dbName, username: argsWithDefaults.username, password: this.password.value, dbSubnetGroupName: this.dbSubnetGroup.name, vpcSecurityGroupIds: [this.dbSecurityGroup.id], storageEncrypted: true, kmsKeyId: this.kms.arn, multiAz: argsWithDefaults.multiAz, publiclyAccessible: false, skipFinalSnapshot: argsWithDefaults.skipFinalSnapshot, applyImmediately: argsWithDefaults.applyImmediately, autoMinorVersionUpgrade: true, maintenanceWindow: 'Mon:07:00-Mon:07:30', finalSnapshotIdentifier: `${this.name}-final-snapshot-${stack}`, backupWindow: '06:00-06:30', backupRetentionPeriod: 14, caCertIdentifier: 'rds-ca-rsa2048-g1', parameterGroupName: argsWithDefaults.parameterGroupName, allowMajorVersionUpgrade: argsWithDefaults.allowMajorVersionUpgrade, snapshotIdentifier: (_a = this.encryptedSnapshotCopy) === null || _a === void 0 ? void 0 : _a.targetDbSnapshotIdentifier }, monitoringOptions), { tags: Object.assign(Object.assign({}, constants_1.commonTags), argsWithDefaults.tags) }), { parent: this, dependsOn: [this.password] });
115
- return instance;
116
- }
117
- }
118
- exports.Database = Database;
@@ -1,22 +0,0 @@
1
- import * as pulumi from '@pulumi/pulumi';
2
- import * as aws from '@pulumi/aws';
3
- export type Ec2SSMConnectArgs = {
4
- vpcId: pulumi.Input<string>;
5
- privateSubnetId: pulumi.Input<string>;
6
- /**
7
- * The IPv4 CIDR block for the VPC.
8
- */
9
- vpcCidrBlock: pulumi.Input<string>;
10
- tags?: pulumi.Input<{
11
- [key: string]: pulumi.Input<string>;
12
- }>;
13
- };
14
- export declare class Ec2SSMConnect extends pulumi.ComponentResource {
15
- ec2SecurityGroup: aws.ec2.SecurityGroup;
16
- ssmVpcEndpoint: aws.ec2.VpcEndpoint;
17
- ec2MessagesVpcEndpoint: aws.ec2.VpcEndpoint;
18
- ssmMessagesVpcEndpoint: aws.ec2.VpcEndpoint;
19
- ec2: aws.ec2.Instance;
20
- constructor(name: string, args: Ec2SSMConnectArgs, opts?: pulumi.ComponentResourceOptions);
21
- }
22
- //# sourceMappingURL=ec2-ssm-connect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ec2-ssm-connect.d.ts","sourceRoot":"","sources":["../../src/components/ec2-ssm-connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAMnC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACrC,CAAC,CAAC;CACJ,CAAC;AAEF,qBAAa,aAAc,SAAQ,MAAM,CAAC,iBAAiB;IACzD,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;IACxC,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;IACpC,sBAAsB,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;IAC5C,sBAAsB,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;IAC5C,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAGpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,iBAAiB,EACvB,IAAI,GAAE,MAAM,CAAC,wBAA6B;CAqJ7C"}
@@ -1,143 +0,0 @@
1
- import * as pulumi from '@pulumi/pulumi';
2
- import * as aws from '@pulumi/aws';
3
- import { Size } from '../types/size';
4
- export declare const awsRegion: string;
5
- export declare const assumeRolePolicy: aws.iam.PolicyDocument;
6
- export type RoleInlinePolicy = {
7
- /**
8
- * Name of the role policy.
9
- */
10
- name?: pulumi.Input<string>;
11
- /**
12
- * Policy document as a JSON formatted string.
13
- */
14
- policy?: pulumi.Input<string>;
15
- };
16
- export type PersistentStorageMountPoint = {
17
- sourceVolume: string;
18
- containerPath: string;
19
- readOnly?: boolean;
20
- };
21
- export type PersistentStorageVolume = {
22
- name: string;
23
- };
24
- export type PersistentStorageConfig = {
25
- volumes: PersistentStorageVolume[];
26
- mountPoints: PersistentStorageMountPoint[];
27
- };
28
- export type EcsServiceArgs = {
29
- /**
30
- * The ECR image used to start a container.
31
- */
32
- image: pulumi.Input<string>;
33
- /**
34
- * Exposed service port.
35
- */
36
- port: pulumi.Input<number>;
37
- /**
38
- * The aws.ecs.Cluster id.
39
- */
40
- clusterId: pulumi.Input<string>;
41
- /**
42
- * The aws.ecs.Cluster name.
43
- */
44
- clusterName: pulumi.Input<string>;
45
- vpcId: pulumi.Input<string>;
46
- /**
47
- * The IPv4 CIDR block for the VPC.
48
- */
49
- vpcCidrBlock: pulumi.Input<string>;
50
- /**
51
- * If the `assignPublicIp` parameter is set to `true`, the publicSubnetIds
52
- * must be provided; otherwise, provide the privateSubnetIds.
53
- */
54
- subnetIds: pulumi.Input<pulumi.Input<string>[]>;
55
- /**
56
- * Number of instances of the task definition to place and keep running. Defaults to 1.
57
- */
58
- desiredCount?: pulumi.Input<number>;
59
- /**
60
- * CPU and memory size used for running the container. Defaults to "small".
61
- * Available predefined options are:
62
- * - small (0.25 vCPU, 0.5 GB memory)
63
- * - medium (0.5 vCPU, 1 GB memory)
64
- * - large (1 vCPU memory, 2 GB memory)
65
- * - xlarge (2 vCPU, 4 GB memory)
66
- */
67
- size?: pulumi.Input<Size>;
68
- /**
69
- * The environment variables to pass to a container. Don't use this field for
70
- * sensitive information such as passwords, API keys, etc. For that purpose,
71
- * please use the `secrets` property.
72
- * Defaults to [].
73
- */
74
- environment?: pulumi.Input<aws.ecs.KeyValuePair[]>;
75
- /**
76
- * The secrets to pass to the container. Defaults to [].
77
- */
78
- secrets?: pulumi.Input<aws.ecs.Secret[]>;
79
- /**
80
- * Enable service auto discovery and assign DNS record to service.
81
- * Defaults to false.
82
- */
83
- enableServiceAutoDiscovery: pulumi.Input<boolean>;
84
- /**
85
- * Configuration for multiple EFS volumes and their mount points.
86
- * Each mount point specifies a container path where the EFS volume will be mounted.
87
- */
88
- persistentStorageConfig?: pulumi.Input<PersistentStorageConfig>;
89
- /**
90
- * Alternate docker CMD instruction.
91
- */
92
- dockerCommand?: pulumi.Input<string[]>;
93
- /**
94
- * Autoscaling options for ecs service.
95
- */
96
- autoscaling?: pulumi.Input<{
97
- /**
98
- * Is autoscaling enabled or disabled. Defaults to false.
99
- */
100
- enabled: pulumi.Input<boolean>;
101
- /**
102
- * Min capacity of the scalable target. Defaults to 1.
103
- */
104
- minCount?: pulumi.Input<number>;
105
- /**
106
- * Max capacity of the scalable target. Defaults to 1.
107
- */
108
- maxCount?: pulumi.Input<number>;
109
- }>;
110
- lbTargetGroupArn?: aws.lb.TargetGroup['arn'];
111
- /**
112
- * Custom service security group
113
- * In case no security group is provided, default security group will be used.
114
- */
115
- securityGroup?: aws.ec2.SecurityGroup;
116
- /**
117
- * Assign public IP address to service.
118
- */
119
- assignPublicIp?: pulumi.Input<boolean>;
120
- taskExecutionRoleInlinePolicies?: pulumi.Input<pulumi.Input<RoleInlinePolicy>[]>;
121
- taskRoleInlinePolicies?: pulumi.Input<pulumi.Input<RoleInlinePolicy>[]>;
122
- /**
123
- * A map of tags to assign to the resource.
124
- */
125
- tags?: pulumi.Input<{
126
- [key: string]: pulumi.Input<string>;
127
- }>;
128
- };
129
- export declare class EcsService extends pulumi.ComponentResource {
130
- name: string;
131
- logGroup: aws.cloudwatch.LogGroup;
132
- taskDefinition: aws.ecs.TaskDefinition;
133
- serviceDiscoveryService?: aws.servicediscovery.Service;
134
- service: aws.ecs.Service;
135
- constructor(name: string, args: EcsServiceArgs, opts?: pulumi.ComponentResourceOptions);
136
- private createLogGroup;
137
- private createPersistentStorage;
138
- private createTaskDefinition;
139
- private createServiceDiscovery;
140
- private createEcsService;
141
- private enableAutoscaling;
142
- }
143
- //# sourceMappingURL=ecs-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ecs-service.d.ts","sourceRoot":"","sources":["../../src/components/ecs-service.ts"],"names":[],"mappings":"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"}