@iacmp/core 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/LICENSE +21 -0
  2. package/dist/constructs/cache.d.ts +31 -0
  3. package/dist/constructs/cache.d.ts.map +1 -0
  4. package/dist/constructs/cache.js +31 -0
  5. package/dist/constructs/cache.js.map +1 -0
  6. package/dist/constructs/compute.d.ts +62 -0
  7. package/dist/constructs/compute.d.ts.map +1 -0
  8. package/dist/constructs/compute.js +57 -0
  9. package/dist/constructs/compute.js.map +1 -0
  10. package/dist/constructs/custom.d.ts +32 -0
  11. package/dist/constructs/custom.d.ts.map +1 -0
  12. package/dist/constructs/custom.js +18 -0
  13. package/dist/constructs/custom.js.map +1 -0
  14. package/dist/constructs/database.d.ts +59 -0
  15. package/dist/constructs/database.d.ts.map +1 -0
  16. package/dist/constructs/database.js +49 -0
  17. package/dist/constructs/database.js.map +1 -0
  18. package/dist/constructs/events.d.ts +22 -0
  19. package/dist/constructs/events.d.ts.map +1 -0
  20. package/dist/constructs/events.js +18 -0
  21. package/dist/constructs/events.js.map +1 -0
  22. package/dist/constructs/function.d.ts +46 -0
  23. package/dist/constructs/function.d.ts.map +1 -0
  24. package/dist/constructs/function.js +31 -0
  25. package/dist/constructs/function.js.map +1 -0
  26. package/dist/constructs/messaging.d.ts +34 -0
  27. package/dist/constructs/messaging.d.ts.map +1 -0
  28. package/dist/constructs/messaging.js +29 -0
  29. package/dist/constructs/messaging.js.map +1 -0
  30. package/dist/constructs/monitoring.d.ts +59 -0
  31. package/dist/constructs/monitoring.d.ts.map +1 -0
  32. package/dist/constructs/monitoring.js +49 -0
  33. package/dist/constructs/monitoring.js.map +1 -0
  34. package/dist/constructs/network.d.ts +134 -0
  35. package/dist/constructs/network.d.ts.map +1 -0
  36. package/dist/constructs/network.js +94 -0
  37. package/dist/constructs/network.js.map +1 -0
  38. package/dist/constructs/policy.d.ts +24 -0
  39. package/dist/constructs/policy.d.ts.map +1 -0
  40. package/dist/constructs/policy.js +28 -0
  41. package/dist/constructs/policy.js.map +1 -0
  42. package/dist/constructs/secret.d.ts +30 -0
  43. package/dist/constructs/secret.d.ts.map +1 -0
  44. package/dist/constructs/secret.js +34 -0
  45. package/dist/constructs/secret.js.map +1 -0
  46. package/dist/constructs/storage.d.ts +49 -0
  47. package/dist/constructs/storage.d.ts.map +1 -0
  48. package/dist/constructs/storage.js +40 -0
  49. package/dist/constructs/storage.js.map +1 -0
  50. package/dist/constructs/workflow.d.ts +21 -0
  51. package/dist/constructs/workflow.d.ts.map +1 -0
  52. package/dist/constructs/workflow.js +21 -0
  53. package/dist/constructs/workflow.js.map +1 -0
  54. package/dist/index.d.ts +29 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +34 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/stack.d.ts +17 -0
  59. package/dist/stack.d.ts.map +1 -0
  60. package/dist/stack.js +19 -0
  61. package/dist/stack.js.map +1 -0
  62. package/package.json +50 -0
@@ -0,0 +1,59 @@
1
+ import { Stack, BaseConstruct } from '../stack';
2
+ export interface MonitoringAlarmProps {
3
+ metricName: string;
4
+ namespace?: string;
5
+ threshold: number;
6
+ evaluationPeriods?: number;
7
+ periodSeconds?: number;
8
+ comparisonOperator?: 'GreaterThanThreshold' | 'LessThanThreshold' | 'GreaterThanOrEqualToThreshold' | 'LessThanOrEqualToThreshold';
9
+ statistic?: 'Average' | 'Sum' | 'Minimum' | 'Maximum' | 'SampleCount';
10
+ treatMissingData?: 'breaching' | 'notBreaching' | 'ignore' | 'missing';
11
+ alarmActions?: string[];
12
+ okActions?: string[];
13
+ dimensions?: Record<string, string>;
14
+ }
15
+ export interface MonitoringDashboardWidget {
16
+ type: 'metric' | 'text' | 'alarm';
17
+ title: string;
18
+ metricName?: string;
19
+ namespace?: string;
20
+ dimensions?: Record<string, string>;
21
+ period?: number;
22
+ stat?: string;
23
+ markdown?: string;
24
+ }
25
+ export interface MonitoringDashboardProps {
26
+ widgets: MonitoringDashboardWidget[];
27
+ }
28
+ export interface LoggingStreamProps {
29
+ retentionDays?: 1 | 3 | 5 | 7 | 14 | 30 | 60 | 90 | 120 | 150 | 180 | 365 | 400 | 545 | 731 | 1096 | 1827 | 2192 | 2557 | 2922 | 3288 | 3653;
30
+ kmsKeyId?: string;
31
+ subscriptionFilters?: Array<{
32
+ name: string;
33
+ filterPattern: string;
34
+ destinationArn: string;
35
+ }>;
36
+ }
37
+ export declare namespace Monitoring {
38
+ class Alarm implements BaseConstruct {
39
+ readonly id: string;
40
+ readonly type = "Monitoring.Alarm";
41
+ readonly props: Record<string, unknown>;
42
+ constructor(stack: Stack, id: string, props: MonitoringAlarmProps);
43
+ }
44
+ class Dashboard implements BaseConstruct {
45
+ readonly id: string;
46
+ readonly type = "Monitoring.Dashboard";
47
+ readonly props: Record<string, unknown>;
48
+ constructor(stack: Stack, id: string, props: MonitoringDashboardProps);
49
+ }
50
+ }
51
+ export declare namespace Logging {
52
+ class Stream implements BaseConstruct {
53
+ readonly id: string;
54
+ readonly type = "Logging.Stream";
55
+ readonly props: Record<string, unknown>;
56
+ constructor(stack: Stack, id: string, props: LoggingStreamProps);
57
+ }
58
+ }
59
+ //# sourceMappingURL=monitoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../src/constructs/monitoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logging = exports.Monitoring = void 0;
4
+ var Monitoring;
5
+ (function (Monitoring) {
6
+ class Alarm {
7
+ id;
8
+ type = 'Monitoring.Alarm';
9
+ props;
10
+ constructor(stack, id, props) {
11
+ this.id = id;
12
+ if (!props.metricName)
13
+ throw new Error(`Monitoring.Alarm "${id}": metricName é obrigatório`);
14
+ if (props.threshold === undefined)
15
+ throw new Error(`Monitoring.Alarm "${id}": threshold é obrigatório`);
16
+ this.props = props;
17
+ stack.addConstruct(this);
18
+ }
19
+ }
20
+ Monitoring.Alarm = Alarm;
21
+ class Dashboard {
22
+ id;
23
+ type = 'Monitoring.Dashboard';
24
+ props;
25
+ constructor(stack, id, props) {
26
+ this.id = id;
27
+ if (!props.widgets || props.widgets.length === 0)
28
+ throw new Error(`Monitoring.Dashboard "${id}": widgets não pode ser vazio`);
29
+ this.props = props;
30
+ stack.addConstruct(this);
31
+ }
32
+ }
33
+ Monitoring.Dashboard = Dashboard;
34
+ })(Monitoring || (exports.Monitoring = Monitoring = {}));
35
+ var Logging;
36
+ (function (Logging) {
37
+ class Stream {
38
+ id;
39
+ type = 'Logging.Stream';
40
+ props;
41
+ constructor(stack, id, props) {
42
+ this.id = id;
43
+ this.props = props;
44
+ stack.addConstruct(this);
45
+ }
46
+ }
47
+ Logging.Stream = Stream;
48
+ })(Logging || (exports.Logging = Logging = {}));
49
+ //# sourceMappingURL=monitoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../src/constructs/monitoring.ts"],"names":[],"mappings":";;;AAyCA,IAAiB,UAAU,CAwB1B;AAxBD,WAAiB,UAAU;IACzB,MAAa,KAAK;QAGmB;QAF1B,IAAI,GAAG,kBAAkB,CAAC;QAC1B,KAAK,CAA0B;QACxC,YAAY,KAAY,EAAW,EAAU,EAAE,KAA2B;YAAvC,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,CAAC,UAAU;gBACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,6BAA6B,CAAC,CAAC;YACxE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;gBAC/B,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,4BAA4B,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IAXY,gBAAK,QAWjB,CAAA;IAED,MAAa,SAAS;QAGe;QAF1B,IAAI,GAAG,sBAAsB,CAAC;QAC9B,KAAK,CAA0B;QACxC,YAAY,KAAY,EAAW,EAAU,EAAE,KAA+B;YAA3C,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,+BAA+B,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IATY,oBAAS,YASrB,CAAA;AACH,CAAC,EAxBgB,UAAU,0BAAV,UAAU,QAwB1B;AAED,IAAiB,OAAO,CASvB;AATD,WAAiB,OAAO;IACtB,MAAa,MAAM;QAGkB;QAF1B,IAAI,GAAG,gBAAgB,CAAC;QACxB,KAAK,CAA0B;QACxC,YAAY,KAAY,EAAW,EAAU,EAAE,KAAyB;YAArC,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IAPY,cAAM,SAOlB,CAAA;AACH,CAAC,EATgB,OAAO,uBAAP,OAAO,QASvB"}
@@ -0,0 +1,134 @@
1
+ import { Stack, BaseConstruct } from '../stack';
2
+ export interface NetworkVPCProps {
3
+ cidr?: string;
4
+ maxAzs?: number;
5
+ }
6
+ export interface NetworkSubnetProps {
7
+ vpcId: string;
8
+ cidr: string;
9
+ availabilityZone?: string;
10
+ public?: boolean;
11
+ }
12
+ export interface SecurityGroupRule {
13
+ protocol: 'tcp' | 'udp' | 'icmp' | '-1';
14
+ fromPort: number;
15
+ toPort: number;
16
+ cidr?: string;
17
+ description?: string;
18
+ }
19
+ export interface NetworkSecurityGroupProps {
20
+ vpcId: string;
21
+ description?: string;
22
+ ingressRules?: SecurityGroupRule[];
23
+ egressRules?: SecurityGroupRule[];
24
+ }
25
+ export interface WAFRule {
26
+ name: string;
27
+ priority?: number;
28
+ action?: 'allow' | 'block' | 'count';
29
+ managedGroup?: string;
30
+ sourceIps?: string[];
31
+ matchValues?: string[];
32
+ description?: string;
33
+ }
34
+ export interface NetworkWAFProps {
35
+ scope?: 'REGIONAL' | 'CLOUDFRONT';
36
+ defaultAction?: 'allow' | 'block';
37
+ mode?: 'Detection' | 'Prevention';
38
+ rules?: WAFRule[];
39
+ description?: string;
40
+ }
41
+ export interface NetworkLoadBalancerProps {
42
+ type?: 'application' | 'network';
43
+ scheme?: 'internet-facing' | 'internal';
44
+ subnetIds?: string[];
45
+ securityGroupIds?: string[];
46
+ deletionProtection?: boolean;
47
+ listeners?: Array<{
48
+ port: number;
49
+ protocol: 'HTTP' | 'HTTPS' | 'TCP' | 'TLS';
50
+ certificateArn?: string;
51
+ redirectToHttps?: boolean;
52
+ }>;
53
+ targetGroups?: Array<{
54
+ name: string;
55
+ port: number;
56
+ protocol: 'HTTP' | 'HTTPS' | 'TCP';
57
+ healthCheckPath?: string;
58
+ healthCheckPort?: number;
59
+ }>;
60
+ }
61
+ export interface NetworkCDNProps {
62
+ origins: Array<{
63
+ domainName: string;
64
+ id: string;
65
+ path?: string;
66
+ protocol?: 'http-only' | 'https-only' | 'match-viewer';
67
+ }>;
68
+ defaultRootObject?: string;
69
+ priceClass?: 'PriceClass_100' | 'PriceClass_200' | 'PriceClass_All';
70
+ httpVersion?: 'http1.1' | 'http2' | 'http2and3';
71
+ wafAclId?: string;
72
+ aliases?: string[];
73
+ certificateArn?: string;
74
+ cachePolicies?: Array<{
75
+ pathPattern: string;
76
+ ttlSeconds?: number;
77
+ compress?: boolean;
78
+ }>;
79
+ }
80
+ export interface NetworkDnsProps {
81
+ zoneName: string;
82
+ records: Array<{
83
+ name: string;
84
+ type: 'A' | 'AAAA' | 'CNAME' | 'MX' | 'TXT' | 'NS' | 'PTR' | 'SRV';
85
+ ttl?: number;
86
+ values: string[];
87
+ aliasTarget?: string;
88
+ }>;
89
+ }
90
+ export declare namespace Network {
91
+ class VPC implements BaseConstruct {
92
+ readonly id: string;
93
+ readonly type = "Network.VPC";
94
+ readonly props: Record<string, unknown>;
95
+ constructor(stack: Stack, id: string, props: NetworkVPCProps);
96
+ }
97
+ class Subnet implements BaseConstruct {
98
+ readonly id: string;
99
+ readonly type = "Network.Subnet";
100
+ readonly props: Record<string, unknown>;
101
+ constructor(stack: Stack, id: string, props: NetworkSubnetProps);
102
+ }
103
+ class SecurityGroup implements BaseConstruct {
104
+ readonly id: string;
105
+ readonly type = "Network.SecurityGroup";
106
+ readonly props: Record<string, unknown>;
107
+ constructor(stack: Stack, id: string, props: NetworkSecurityGroupProps);
108
+ }
109
+ class WAF implements BaseConstruct {
110
+ readonly id: string;
111
+ readonly type = "Network.WAF";
112
+ readonly props: Record<string, unknown>;
113
+ constructor(stack: Stack, id: string, props: NetworkWAFProps);
114
+ }
115
+ class LoadBalancer implements BaseConstruct {
116
+ readonly id: string;
117
+ readonly type = "Network.LoadBalancer";
118
+ readonly props: Record<string, unknown>;
119
+ constructor(stack: Stack, id: string, props: NetworkLoadBalancerProps);
120
+ }
121
+ class CDN implements BaseConstruct {
122
+ readonly id: string;
123
+ readonly type = "Network.CDN";
124
+ readonly props: Record<string, unknown>;
125
+ constructor(stack: Stack, id: string, props: NetworkCDNProps);
126
+ }
127
+ class Dns implements BaseConstruct {
128
+ readonly id: string;
129
+ readonly type = "Network.Dns";
130
+ readonly props: Record<string, unknown>;
131
+ constructor(stack: Stack, id: string, props: NetworkDnsProps);
132
+ }
133
+ }
134
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/constructs/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Network = void 0;
4
+ var Network;
5
+ (function (Network) {
6
+ class VPC {
7
+ id;
8
+ type = 'Network.VPC';
9
+ props;
10
+ constructor(stack, id, props) {
11
+ this.id = id;
12
+ this.props = props;
13
+ stack.addConstruct(this);
14
+ }
15
+ }
16
+ Network.VPC = VPC;
17
+ class Subnet {
18
+ id;
19
+ type = 'Network.Subnet';
20
+ props;
21
+ constructor(stack, id, props) {
22
+ this.id = id;
23
+ if (!props.vpcId)
24
+ throw new Error(`Network.Subnet "${id}": vpcId é obrigatório`);
25
+ if (!props.cidr)
26
+ throw new Error(`Network.Subnet "${id}": cidr é obrigatório`);
27
+ this.props = props;
28
+ stack.addConstruct(this);
29
+ }
30
+ }
31
+ Network.Subnet = Subnet;
32
+ class SecurityGroup {
33
+ id;
34
+ type = 'Network.SecurityGroup';
35
+ props;
36
+ constructor(stack, id, props) {
37
+ this.id = id;
38
+ if (!props.vpcId)
39
+ throw new Error(`Network.SecurityGroup "${id}": vpcId é obrigatório`);
40
+ this.props = props;
41
+ stack.addConstruct(this);
42
+ }
43
+ }
44
+ Network.SecurityGroup = SecurityGroup;
45
+ class WAF {
46
+ id;
47
+ type = 'Network.WAF';
48
+ props;
49
+ constructor(stack, id, props) {
50
+ this.id = id;
51
+ this.props = props;
52
+ stack.addConstruct(this);
53
+ }
54
+ }
55
+ Network.WAF = WAF;
56
+ class LoadBalancer {
57
+ id;
58
+ type = 'Network.LoadBalancer';
59
+ props;
60
+ constructor(stack, id, props) {
61
+ this.id = id;
62
+ this.props = props;
63
+ stack.addConstruct(this);
64
+ }
65
+ }
66
+ Network.LoadBalancer = LoadBalancer;
67
+ class CDN {
68
+ id;
69
+ type = 'Network.CDN';
70
+ props;
71
+ constructor(stack, id, props) {
72
+ this.id = id;
73
+ if (!props.origins || props.origins.length === 0)
74
+ throw new Error(`Network.CDN "${id}": origins não pode ser vazio`);
75
+ this.props = props;
76
+ stack.addConstruct(this);
77
+ }
78
+ }
79
+ Network.CDN = CDN;
80
+ class Dns {
81
+ id;
82
+ type = 'Network.Dns';
83
+ props;
84
+ constructor(stack, id, props) {
85
+ this.id = id;
86
+ if (!props.zoneName)
87
+ throw new Error(`Network.Dns "${id}": zoneName é obrigatório`);
88
+ this.props = props;
89
+ stack.addConstruct(this);
90
+ }
91
+ }
92
+ Network.Dns = Dns;
93
+ })(Network || (exports.Network = Network = {}));
94
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/constructs/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Stack, BaseConstruct } from '../stack';
2
+ export type PolicyEffect = 'Allow' | 'Deny';
3
+ export type PolicyPrincipalType = 'service' | 'account' | 'role' | 'user' | 'any';
4
+ export interface PolicyStatement {
5
+ effect: PolicyEffect;
6
+ actions: string[];
7
+ resources?: string[];
8
+ conditions?: Record<string, Record<string, string>>;
9
+ }
10
+ export interface PolicyProps {
11
+ attachTo: string;
12
+ attachType: 'lambda' | 'compute' | 'bucket' | 'database' | 'role' | 'group';
13
+ statements: PolicyStatement[];
14
+ description?: string;
15
+ }
16
+ export declare namespace Policy {
17
+ class IAM implements BaseConstruct {
18
+ readonly id: string;
19
+ readonly type = "Policy.IAM";
20
+ readonly props: Record<string, unknown>;
21
+ constructor(stack: Stack, id: string, props: PolicyProps);
22
+ }
23
+ }
24
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/constructs/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAC5C,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5E,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,yBAAiB,MAAM,CAAC;IACtB,MAAa,GAAI,YAAW,aAAa;QAIb,QAAQ,CAAC,EAAE,EAAE,MAAM;QAH7C,QAAQ,CAAC,IAAI,gBAAgB;QAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAE5B,KAAK,EAAE,KAAK,EAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;KAalE;CACF"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Policy = void 0;
4
+ var Policy;
5
+ (function (Policy) {
6
+ class IAM {
7
+ id;
8
+ type = 'Policy.IAM';
9
+ props;
10
+ constructor(stack, id, props) {
11
+ this.id = id;
12
+ if (!props.attachTo)
13
+ throw new Error(`Policy.IAM "${id}": attachTo é obrigatório`);
14
+ if (!props.statements || props.statements.length === 0) {
15
+ throw new Error(`Policy.IAM "${id}": statements não pode ser vazio`);
16
+ }
17
+ for (const stmt of props.statements) {
18
+ if (!stmt.actions || stmt.actions.length === 0) {
19
+ throw new Error(`Policy.IAM "${id}": cada statement precisa de pelo menos uma action`);
20
+ }
21
+ }
22
+ this.props = props;
23
+ stack.addConstruct(this);
24
+ }
25
+ }
26
+ Policy.IAM = IAM;
27
+ })(Policy || (exports.Policy = Policy = {}));
28
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/constructs/policy.ts"],"names":[],"mappings":";;;AAmBA,IAAiB,MAAM,CAmBtB;AAnBD,WAAiB,MAAM;IACrB,MAAa,GAAG;QAIqB;QAH1B,IAAI,GAAG,YAAY,CAAC;QACpB,KAAK,CAA0B;QAExC,YAAY,KAAY,EAAW,EAAU,EAAE,KAAkB;YAA9B,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAC;YACvE,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,oDAAoD,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IAjBY,UAAG,MAiBf,CAAA;AACH,CAAC,EAnBgB,MAAM,sBAAN,MAAM,QAmBtB"}
@@ -0,0 +1,30 @@
1
+ import { Stack, BaseConstruct } from '../stack';
2
+ export interface SecretVaultProps {
3
+ description?: string;
4
+ kmsKeyId?: string;
5
+ rotationDays?: number;
6
+ replicaRegions?: string[];
7
+ }
8
+ export interface CertificateTLSProps {
9
+ domainName: string;
10
+ subjectAlternativeNames?: string[];
11
+ validationMethod?: 'DNS' | 'EMAIL';
12
+ region?: string;
13
+ }
14
+ export declare namespace Secret {
15
+ class Vault implements BaseConstruct {
16
+ readonly id: string;
17
+ readonly type = "Secret.Vault";
18
+ readonly props: Record<string, unknown>;
19
+ constructor(stack: Stack, id: string, props: SecretVaultProps);
20
+ }
21
+ }
22
+ export declare namespace Certificate {
23
+ class TLS implements BaseConstruct {
24
+ readonly id: string;
25
+ readonly type = "Certificate.TLS";
26
+ readonly props: Record<string, unknown>;
27
+ constructor(stack: Stack, id: string, props: CertificateTLSProps);
28
+ }
29
+ }
30
+ //# sourceMappingURL=secret.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/constructs/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yBAAiB,MAAM,CAAC;IACtB,MAAa,KAAM,YAAW,aAAa;QAGf,QAAQ,CAAC,EAAE,EAAE,MAAM;QAF7C,QAAQ,CAAC,IAAI,kBAAkB;QAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC5B,KAAK,EAAE,KAAK,EAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;KAIvE;CACF;AAED,yBAAiB,WAAW,CAAC;IAC3B,MAAa,GAAI,YAAW,aAAa;QAGb,QAAQ,CAAC,EAAE,EAAE,MAAM;QAF7C,QAAQ,CAAC,IAAI,qBAAqB;QAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC5B,KAAK,EAAE,KAAK,EAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;KAM1E;CACF"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Certificate = exports.Secret = void 0;
4
+ var Secret;
5
+ (function (Secret) {
6
+ class Vault {
7
+ id;
8
+ type = 'Secret.Vault';
9
+ props;
10
+ constructor(stack, id, props) {
11
+ this.id = id;
12
+ this.props = props;
13
+ stack.addConstruct(this);
14
+ }
15
+ }
16
+ Secret.Vault = Vault;
17
+ })(Secret || (exports.Secret = Secret = {}));
18
+ var Certificate;
19
+ (function (Certificate) {
20
+ class TLS {
21
+ id;
22
+ type = 'Certificate.TLS';
23
+ props;
24
+ constructor(stack, id, props) {
25
+ this.id = id;
26
+ if (!props.domainName)
27
+ throw new Error(`Certificate.TLS "${id}": domainName é obrigatório`);
28
+ this.props = props;
29
+ stack.addConstruct(this);
30
+ }
31
+ }
32
+ Certificate.TLS = TLS;
33
+ })(Certificate || (exports.Certificate = Certificate = {}));
34
+ //# sourceMappingURL=secret.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret.js","sourceRoot":"","sources":["../../src/constructs/secret.ts"],"names":[],"mappings":";;;AAgBA,IAAiB,MAAM,CAStB;AATD,WAAiB,MAAM;IACrB,MAAa,KAAK;QAGmB;QAF1B,IAAI,GAAG,cAAc,CAAC;QACtB,KAAK,CAA0B;QACxC,YAAY,KAAY,EAAW,EAAU,EAAE,KAAuB;YAAnC,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IAPY,YAAK,QAOjB,CAAA;AACH,CAAC,EATgB,MAAM,sBAAN,MAAM,QAStB;AAED,IAAiB,WAAW,CAW3B;AAXD,WAAiB,WAAW;IAC1B,MAAa,GAAG;QAGqB;QAF1B,IAAI,GAAG,iBAAiB,CAAC;QACzB,KAAK,CAA0B;QACxC,YAAY,KAAY,EAAW,EAAU,EAAE,KAA0B;YAAtC,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,CAAC,UAAU;gBACnB,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,6BAA6B,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IATY,eAAG,MASf,CAAA;AACH,CAAC,EAXgB,WAAW,2BAAX,WAAW,QAW3B"}
@@ -0,0 +1,49 @@
1
+ import { Stack, BaseConstruct } from '../stack';
2
+ export interface StorageBucketProps {
3
+ versioning?: boolean;
4
+ publicAccess?: boolean;
5
+ location?: string;
6
+ lifecycleRules?: Array<{
7
+ prefix?: string;
8
+ expireAfterDays?: number;
9
+ transitionToGlacierDays?: number;
10
+ }>;
11
+ }
12
+ export interface StorageFileSystemProps {
13
+ performanceMode?: 'generalPurpose' | 'maxIO';
14
+ throughputMode?: 'bursting' | 'provisioned';
15
+ encrypted?: boolean;
16
+ accessPoints?: Array<{
17
+ name: string;
18
+ path: string;
19
+ uid?: number;
20
+ gid?: number;
21
+ }>;
22
+ }
23
+ export interface StorageArchiveProps {
24
+ retrievalTier?: 'Expedited' | 'Standard' | 'Bulk';
25
+ lockEnabled?: boolean;
26
+ retentionDays?: number;
27
+ location?: string;
28
+ }
29
+ export declare namespace Storage {
30
+ class Bucket implements BaseConstruct {
31
+ readonly id: string;
32
+ readonly type = "Storage.Bucket";
33
+ readonly props: Record<string, unknown>;
34
+ constructor(stack: Stack, id: string, props: StorageBucketProps);
35
+ }
36
+ class FileSystem implements BaseConstruct {
37
+ readonly id: string;
38
+ readonly type = "Storage.FileSystem";
39
+ readonly props: Record<string, unknown>;
40
+ constructor(stack: Stack, id: string, props: StorageFileSystemProps);
41
+ }
42
+ class Archive implements BaseConstruct {
43
+ readonly id: string;
44
+ readonly type = "Storage.Archive";
45
+ readonly props: Record<string, unknown>;
46
+ constructor(stack: Stack, id: string, props: StorageArchiveProps);
47
+ }
48
+ }
49
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/constructs/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAC7C,cAAc,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,yBAAiB,OAAO,CAAC;IACvB,MAAa,MAAO,YAAW,aAAa;QAGhB,QAAQ,CAAC,EAAE,EAAE,MAAM;QAF7C,QAAQ,CAAC,IAAI,oBAAoB;QACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC5B,KAAK,EAAE,KAAK,EAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB;KAIzE;IAED,MAAa,UAAW,YAAW,aAAa;QAGpB,QAAQ,CAAC,EAAE,EAAE,MAAM;QAF7C,QAAQ,CAAC,IAAI,wBAAwB;QACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC5B,KAAK,EAAE,KAAK,EAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB;KAI7E;IAED,MAAa,OAAQ,YAAW,aAAa;QAGjB,QAAQ,CAAC,EAAE,EAAE,MAAM;QAF7C,QAAQ,CAAC,IAAI,qBAAqB;QAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC5B,KAAK,EAAE,KAAK,EAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;KAI1E;CACF"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Storage = void 0;
4
+ var Storage;
5
+ (function (Storage) {
6
+ class Bucket {
7
+ id;
8
+ type = 'Storage.Bucket';
9
+ props;
10
+ constructor(stack, id, props) {
11
+ this.id = id;
12
+ this.props = props;
13
+ stack.addConstruct(this);
14
+ }
15
+ }
16
+ Storage.Bucket = Bucket;
17
+ class FileSystem {
18
+ id;
19
+ type = 'Storage.FileSystem';
20
+ props;
21
+ constructor(stack, id, props) {
22
+ this.id = id;
23
+ this.props = props;
24
+ stack.addConstruct(this);
25
+ }
26
+ }
27
+ Storage.FileSystem = FileSystem;
28
+ class Archive {
29
+ id;
30
+ type = 'Storage.Archive';
31
+ props;
32
+ constructor(stack, id, props) {
33
+ this.id = id;
34
+ this.props = props;
35
+ stack.addConstruct(this);
36
+ }
37
+ }
38
+ Storage.Archive = Archive;
39
+ })(Storage || (exports.Storage = Storage = {}));
40
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/constructs/storage.ts"],"names":[],"mappings":";;;AAgCA,IAAiB,OAAO,CA2BvB;AA3BD,WAAiB,OAAO;IACtB,MAAa,MAAM;QAGkB;QAF1B,IAAI,GAAG,gBAAgB,CAAC;QACxB,KAAK,CAA0B;QACxC,YAAY,KAAY,EAAW,EAAU,EAAE,KAAyB;YAArC,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IAPY,cAAM,SAOlB,CAAA;IAED,MAAa,UAAU;QAGc;QAF1B,IAAI,GAAG,oBAAoB,CAAC;QAC5B,KAAK,CAA0B;QACxC,YAAY,KAAY,EAAW,EAAU,EAAE,KAA6B;YAAzC,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IAPY,kBAAU,aAOtB,CAAA;IAED,MAAa,OAAO;QAGiB;QAF1B,IAAI,GAAG,iBAAiB,CAAC;QACzB,KAAK,CAA0B;QACxC,YAAY,KAAY,EAAW,EAAU,EAAE,KAA0B;YAAtC,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IAPY,eAAO,UAOnB,CAAA;AACH,CAAC,EA3BgB,OAAO,uBAAP,OAAO,QA2BvB"}
@@ -0,0 +1,21 @@
1
+ import { Stack, BaseConstruct } from '../stack';
2
+ export interface WorkflowStep {
3
+ name: string;
4
+ type?: 'Task' | 'Choice' | 'Wait' | 'Parallel' | 'Map' | 'Pass' | 'Succeed' | 'Fail';
5
+ resource?: string;
6
+ description?: string;
7
+ }
8
+ export interface StepFunctionsProps {
9
+ steps: WorkflowStep[];
10
+ description?: string;
11
+ type?: 'STANDARD' | 'EXPRESS';
12
+ }
13
+ export declare namespace Workflow {
14
+ class StepFunctions implements BaseConstruct {
15
+ readonly id: string;
16
+ readonly type = "Workflow.StepFunctions";
17
+ readonly props: Record<string, unknown>;
18
+ constructor(stack: Stack, id: string, props: StepFunctionsProps);
19
+ }
20
+ }
21
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/constructs/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAC/B;AAED,yBAAiB,QAAQ,CAAC;IACxB,MAAa,aAAc,YAAW,aAAa;QAIvB,QAAQ,CAAC,EAAE,EAAE,MAAM;QAH7C,QAAQ,CAAC,IAAI,4BAA4B;QACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAE5B,KAAK,EAAE,KAAK,EAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB;KAOzE;CACF"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Workflow = void 0;
4
+ var Workflow;
5
+ (function (Workflow) {
6
+ class StepFunctions {
7
+ id;
8
+ type = 'Workflow.StepFunctions';
9
+ props;
10
+ constructor(stack, id, props) {
11
+ this.id = id;
12
+ if (!props.steps || props.steps.length === 0) {
13
+ throw new Error(`Workflow.StepFunctions "${id}": steps não pode ser vazio`);
14
+ }
15
+ this.props = props;
16
+ stack.addConstruct(this);
17
+ }
18
+ }
19
+ Workflow.StepFunctions = StepFunctions;
20
+ })(Workflow || (exports.Workflow = Workflow = {}));
21
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/constructs/workflow.ts"],"names":[],"mappings":";;;AAeA,IAAiB,QAAQ,CAaxB;AAbD,WAAiB,QAAQ;IACvB,MAAa,aAAa;QAIW;QAH1B,IAAI,GAAG,wBAAwB,CAAC;QAChC,KAAK,CAA0B;QAExC,YAAY,KAAY,EAAW,EAAU,EAAE,KAAyB;YAArC,OAAE,GAAF,EAAE,CAAQ;YAC3C,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,6BAA6B,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,KAA2C,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF;IAXY,sBAAa,gBAWzB,CAAA;AACH,CAAC,EAbgB,QAAQ,wBAAR,QAAQ,QAaxB"}