@stacksjs/ts-cloud-core 0.1.6 → 0.1.7
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.
- package/dist/advanced-features.test.d.ts +0 -0
- package/dist/aws/cloudformation.d.ts +69 -0
- package/dist/aws/cloudfront.d.ts +21 -0
- package/dist/aws/credentials.d.ts +66 -0
- package/dist/aws/credentials.test.d.ts +0 -0
- package/dist/aws/index.d.ts +73 -0
- package/dist/aws/s3.d.ts +130 -0
- package/dist/aws/s3.test.d.ts +0 -0
- package/dist/aws/signature.d.ts +101 -0
- package/dist/aws/signature.test.d.ts +0 -0
- package/dist/backup/disaster-recovery.d.ts +98 -0
- package/dist/backup/disaster-recovery.test.d.ts +0 -0
- package/dist/backup/index.d.ts +24 -0
- package/dist/backup/manager.d.ts +112 -0
- package/dist/backup/manager.test.d.ts +0 -0
- package/dist/cicd/circleci.d.ts +47 -0
- package/dist/cicd/github-actions.d.ts +55 -0
- package/dist/cicd/gitlab-ci.d.ts +46 -0
- package/dist/cicd/index.d.ts +3 -0
- package/dist/cli/history.d.ts +66 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/progress.d.ts +97 -0
- package/dist/cli/repl.d.ts +76 -0
- package/dist/cli/suggestions.d.ts +67 -0
- package/dist/cli/table.d.ts +70 -0
- package/dist/cli/table.test.d.ts +0 -0
- package/dist/cloudformation/builder.d.ts +59 -0
- package/dist/cloudformation/builder.test.d.ts +0 -0
- package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
- package/dist/cloudformation/builders/cache.d.ts +35 -0
- package/dist/cloudformation/builders/cdn.d.ts +34 -0
- package/dist/cloudformation/builders/compute.d.ts +66 -0
- package/dist/cloudformation/builders/database.d.ts +61 -0
- package/dist/cloudformation/builders/functions.d.ts +32 -0
- package/dist/cloudformation/builders/messaging.d.ts +17 -0
- package/dist/cloudformation/builders/monitoring.d.ts +36 -0
- package/dist/cloudformation/builders/network.d.ts +14 -0
- package/dist/cloudformation/builders/queue.d.ts +8 -0
- package/dist/cloudformation/builders/security.d.ts +31 -0
- package/dist/cloudformation/builders/storage.d.ts +8 -0
- package/dist/cloudformation/index.d.ts +24 -0
- package/dist/cloudformation/types.d.ts +132 -0
- package/dist/compliance/aws-config.d.ts +88 -0
- package/dist/compliance/cloudtrail.d.ts +96 -0
- package/dist/compliance/compliance.test.d.ts +0 -0
- package/dist/compliance/guardduty.d.ts +110 -0
- package/dist/compliance/index.d.ts +50 -0
- package/dist/compliance/security-hub.d.ts +110 -0
- package/dist/containers/build-optimization.d.ts +110 -0
- package/dist/containers/containers.test.d.ts +0 -0
- package/dist/containers/image-scanning.d.ts +96 -0
- package/dist/containers/index.d.ts +4 -0
- package/dist/containers/registry.d.ts +99 -0
- package/dist/containers/service-mesh.d.ts +206 -0
- package/dist/database/database.test.d.ts +0 -0
- package/dist/database/index.d.ts +4 -0
- package/dist/database/migrations.d.ts +102 -0
- package/dist/database/performance.d.ts +168 -0
- package/dist/database/replicas.d.ts +146 -0
- package/dist/database/users.d.ts +102 -0
- package/dist/dependency-graph.d.ts +19 -0
- package/dist/deployment/ab-testing.d.ts +114 -0
- package/dist/deployment/blue-green.d.ts +98 -0
- package/dist/deployment/canary.d.ts +103 -0
- package/dist/deployment/deployment.test.d.ts +0 -0
- package/dist/deployment/index.d.ts +45 -0
- package/dist/deployment/progressive.d.ts +34 -0
- package/dist/dns/dns.test.d.ts +0 -0
- package/dist/dns/dnssec.d.ts +75 -0
- package/dist/dns/index.d.ts +3 -0
- package/dist/dns/resolver.d.ts +150 -0
- package/dist/dns/routing.d.ts +217 -0
- package/dist/email/advanced/analytics.d.ts +78 -0
- package/dist/email/advanced/index.d.ts +7 -0
- package/dist/email/advanced/rules.d.ts +60 -0
- package/dist/email/advanced/scheduling.d.ts +63 -0
- package/dist/email/advanced/search.d.ts +76 -0
- package/dist/email/advanced/shared-mailboxes.d.ts +66 -0
- package/dist/email/advanced/templates.d.ts +39 -0
- package/dist/email/advanced/threading.d.ts +53 -0
- package/dist/email/analytics.d.ts +144 -0
- package/dist/email/bounce-handling.d.ts +120 -0
- package/dist/email/email.test.d.ts +0 -0
- package/dist/email/handlers/__tests__/inbound.test.d.ts +0 -0
- package/dist/email/handlers/__tests__/outbound.test.d.ts +0 -0
- package/dist/email/handlers/converter.d.ts +225 -0
- package/dist/email/handlers/feedback.d.ts +226 -0
- package/dist/email/handlers/inbound.d.ts +167 -0
- package/dist/email/handlers/outbound.d.ts +176 -0
- package/dist/email/index.d.ts +6 -0
- package/dist/email/reputation.d.ts +97 -0
- package/dist/email/templates.d.ts +82 -0
- package/dist/errors/index.d.ts +186 -0
- package/dist/errors/index.test.d.ts +0 -0
- package/dist/health-checks/index.d.ts +35 -0
- package/dist/index.d.ts +256 -0
- package/dist/index.js +63499 -0
- package/dist/intrinsic-functions.d.ts +37 -0
- package/dist/lambda/concurrency.d.ts +98 -0
- package/dist/lambda/destinations.d.ts +99 -0
- package/dist/lambda/dlq.d.ts +109 -0
- package/dist/lambda/index.d.ts +6 -0
- package/dist/lambda/lambda.test.d.ts +0 -0
- package/dist/lambda/layers.d.ts +81 -0
- package/dist/lambda/versions.d.ts +91 -0
- package/dist/lambda/vpc.d.ts +116 -0
- package/dist/local/config.d.ts +44 -0
- package/dist/local/index.d.ts +2 -0
- package/dist/local/mock-aws.d.ts +60 -0
- package/dist/modules/ai.d.ts +47 -0
- package/dist/modules/api.d.ts +98 -0
- package/dist/modules/auth.d.ts +165 -0
- package/dist/modules/cache.d.ts +73 -0
- package/dist/modules/cdn.d.ts +125 -0
- package/dist/modules/communication.d.ts +98 -0
- package/dist/modules/compute.d.ts +309 -0
- package/dist/modules/database.d.ts +105 -0
- package/dist/modules/deployment.d.ts +181 -0
- package/dist/modules/dns.d.ts +45 -0
- package/dist/modules/email.d.ts +217 -0
- package/dist/modules/filesystem.d.ts +94 -0
- package/dist/modules/index.d.ts +27 -0
- package/dist/modules/messaging.d.ts +108 -0
- package/dist/modules/monitoring.d.ts +127 -0
- package/dist/modules/network.d.ts +102 -0
- package/dist/modules/parameter-store.d.ts +33 -0
- package/dist/modules/permissions.d.ts +132 -0
- package/dist/modules/phone.d.ts +80 -0
- package/dist/modules/queue.d.ts +210 -0
- package/dist/modules/redirects.d.ts +59 -0
- package/dist/modules/registry.d.ts +73 -0
- package/dist/modules/search.d.ts +56 -0
- package/dist/modules/secrets.d.ts +80 -0
- package/dist/modules/security.d.ts +100 -0
- package/dist/modules/sms.d.ts +52 -0
- package/dist/modules/storage.d.ts +160 -0
- package/dist/modules/workflow.d.ts +205 -0
- package/dist/multi-account/config.d.ts +315 -0
- package/dist/multi-account/index.d.ts +2 -0
- package/dist/multi-account/manager.d.ts +100 -0
- package/dist/multi-region/cross-region.d.ts +114 -0
- package/dist/multi-region/index.d.ts +3 -0
- package/dist/multi-region/manager.d.ts +72 -0
- package/dist/multi-region/regions.d.ts +98 -0
- package/dist/network-security/index.d.ts +39 -0
- package/dist/observability/index.d.ts +4 -0
- package/dist/observability/logs.d.ts +129 -0
- package/dist/observability/metrics.d.ts +153 -0
- package/dist/observability/observability.test.d.ts +0 -0
- package/dist/observability/synthetics.d.ts +146 -0
- package/dist/observability/xray.d.ts +129 -0
- package/dist/phone/advanced/analytics.d.ts +66 -0
- package/dist/phone/advanced/callbacks.d.ts +50 -0
- package/dist/phone/advanced/index.d.ts +4 -0
- package/dist/phone/advanced/ivr-builder.d.ts +83 -0
- package/dist/phone/advanced/recording.d.ts +48 -0
- package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +0 -0
- package/dist/phone/handlers/incoming-call.d.ts +115 -0
- package/dist/phone/handlers/missed-call.d.ts +114 -0
- package/dist/phone/handlers/voicemail.d.ts +177 -0
- package/dist/phone/index.d.ts +2 -0
- package/dist/presets/api-backend.d.ts +11 -0
- package/dist/presets/data-pipeline.d.ts +11 -0
- package/dist/presets/extend.d.ts +194 -0
- package/dist/presets/extend.test.d.ts +0 -0
- package/dist/presets/fullstack-app.d.ts +12 -0
- package/dist/presets/index.d.ts +24 -0
- package/dist/presets/jamstack.d.ts +12 -0
- package/dist/presets/microservices.d.ts +18 -0
- package/dist/presets/ml-api.d.ts +13 -0
- package/dist/presets/nodejs-server.d.ts +14 -0
- package/dist/presets/nodejs-serverless.d.ts +14 -0
- package/dist/presets/realtime-app.d.ts +11 -0
- package/dist/presets/static-site.d.ts +12 -0
- package/dist/presets/traditional-web-app.d.ts +16 -0
- package/dist/presets/wordpress.d.ts +12 -0
- package/dist/preview/github.d.ts +32 -0
- package/dist/preview/github.test.d.ts +0 -0
- package/dist/preview/index.d.ts +27 -0
- package/dist/preview/manager.d.ts +58 -0
- package/dist/preview/manager.test.d.ts +0 -0
- package/dist/preview/notifications.d.ts +55 -0
- package/dist/preview/notifications.test.d.ts +0 -0
- package/dist/queue/batch-processing.d.ts +87 -0
- package/dist/queue/dlq-monitoring.d.ts +95 -0
- package/dist/queue/fifo.d.ts +90 -0
- package/dist/queue/index.d.ts +4 -0
- package/dist/queue/management.d.ts +105 -0
- package/dist/queue/queue.test.d.ts +0 -0
- package/dist/resource-mgmt/index.d.ts +29 -0
- package/dist/resource-naming.d.ts +26 -0
- package/dist/s3/index.d.ts +173 -0
- package/dist/schema/index.d.ts +9 -0
- package/dist/security/certificate-manager.d.ts +121 -0
- package/dist/security/index.d.ts +4 -0
- package/dist/security/scanning.d.ts +147 -0
- package/dist/security/secrets-manager.d.ts +144 -0
- package/dist/security/secrets-rotation.d.ts +115 -0
- package/dist/security/security.test.d.ts +0 -0
- package/dist/sms/advanced/ab-testing.d.ts +54 -0
- package/dist/sms/advanced/analytics.d.ts +56 -0
- package/dist/sms/advanced/campaigns.d.ts +82 -0
- package/dist/sms/advanced/chatbot.d.ts +48 -0
- package/dist/sms/advanced/index.d.ts +6 -0
- package/dist/sms/advanced/link-tracking.d.ts +42 -0
- package/dist/sms/advanced/mms.d.ts +35 -0
- package/dist/sms/handlers/__tests__/send.test.d.ts +0 -0
- package/dist/sms/handlers/delivery-status.d.ts +131 -0
- package/dist/sms/handlers/receive.d.ts +160 -0
- package/dist/sms/handlers/send.d.ts +172 -0
- package/dist/sms/index.d.ts +2 -0
- package/dist/stack-diff.d.ts +34 -0
- package/dist/static-site/index.d.ts +49 -0
- package/dist/template-builder.d.ts +14 -0
- package/dist/template-validator.d.ts +24 -0
- package/dist/utils/cache.d.ts +55 -0
- package/dist/utils/diff.d.ts +48 -0
- package/dist/utils/hash.d.ts +58 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/parallel.d.ts +60 -0
- package/dist/validators/credentials.d.ts +23 -0
- package/dist/validators/credentials.test.d.ts +0 -0
- package/dist/validators/quotas.d.ts +60 -0
- package/dist/validators/quotas.test.d.ts +0 -0
- package/package.json +4 -4
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
|
|
2
|
+
import type { IAMPolicy, IAMRole, LambdaFunction, LambdaPermission, Route53RecordSet, S3Bucket, SESConfigurationSet, SESEmailIdentity, SESReceiptRule, SESReceiptRuleSet, } from '@stacksjs/ts-cloud-aws-types';
|
|
3
|
+
export declare interface EmailIdentityOptions {
|
|
4
|
+
domain: string
|
|
5
|
+
slug: string
|
|
6
|
+
environment: EnvironmentType
|
|
7
|
+
enableDkim?: boolean
|
|
8
|
+
dkimKeyLength?: 'RSA_1024_BIT' | 'RSA_2048_BIT'
|
|
9
|
+
}
|
|
10
|
+
export declare interface ConfigurationSetOptions {
|
|
11
|
+
slug: string
|
|
12
|
+
environment: EnvironmentType
|
|
13
|
+
name?: string
|
|
14
|
+
reputationMetrics?: boolean
|
|
15
|
+
sendingEnabled?: boolean
|
|
16
|
+
suppressBounces?: boolean
|
|
17
|
+
suppressComplaints?: boolean
|
|
18
|
+
}
|
|
19
|
+
export declare interface ReceiptRuleSetOptions {
|
|
20
|
+
slug: string
|
|
21
|
+
environment: EnvironmentType
|
|
22
|
+
name?: string
|
|
23
|
+
}
|
|
24
|
+
export declare interface ReceiptRuleOptions {
|
|
25
|
+
slug: string
|
|
26
|
+
environment: EnvironmentType
|
|
27
|
+
ruleSetName: string
|
|
28
|
+
recipients?: string[]
|
|
29
|
+
enabled?: boolean
|
|
30
|
+
scanEnabled?: boolean
|
|
31
|
+
tlsPolicy?: 'Optional' | 'Require'
|
|
32
|
+
s3Action?: {
|
|
33
|
+
bucketName: string
|
|
34
|
+
prefix?: string
|
|
35
|
+
kmsKeyArn?: string
|
|
36
|
+
}
|
|
37
|
+
lambdaAction?: {
|
|
38
|
+
functionArn: string
|
|
39
|
+
invocationType?: 'Event' | 'RequestResponse'
|
|
40
|
+
}
|
|
41
|
+
snsAction?: {
|
|
42
|
+
topicArn: string
|
|
43
|
+
encoding?: 'UTF-8' | 'Base64'
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Email Module - SES (Simple Email Service)
|
|
48
|
+
* Provides clean API for email sending, receiving, and domain verification
|
|
49
|
+
*/
|
|
50
|
+
export declare class Email {
|
|
51
|
+
static verifyDomain(options: EmailIdentityOptions): {
|
|
52
|
+
emailIdentity: SESEmailIdentity
|
|
53
|
+
logicalId: string
|
|
54
|
+
};
|
|
55
|
+
static createDkimRecords(domain: string, dkimTokens: string[], hostedZoneId: string): Array<{ record: Route53RecordSet, logicalId: string }>;
|
|
56
|
+
static createConfigurationSet(options: ConfigurationSetOptions): {
|
|
57
|
+
configurationSet: SESConfigurationSet
|
|
58
|
+
logicalId: string
|
|
59
|
+
};
|
|
60
|
+
static createReceiptRuleSet(options: ReceiptRuleSetOptions): {
|
|
61
|
+
ruleSet: SESReceiptRuleSet
|
|
62
|
+
logicalId: string
|
|
63
|
+
};
|
|
64
|
+
static createReceiptRule(ruleSetLogicalId: string, options: ReceiptRuleOptions): {
|
|
65
|
+
receiptRule: SESReceiptRule
|
|
66
|
+
logicalId: string
|
|
67
|
+
};
|
|
68
|
+
static createMxRecord(domain: string, hostedZoneId: string, region: string): {
|
|
69
|
+
record: Route53RecordSet
|
|
70
|
+
logicalId: string
|
|
71
|
+
};
|
|
72
|
+
static createVerificationRecord(domain: string, verificationToken: string, hostedZoneId: string): {
|
|
73
|
+
record: Route53RecordSet
|
|
74
|
+
logicalId: string
|
|
75
|
+
};
|
|
76
|
+
static getSmtpEndpoint(region: string): string;
|
|
77
|
+
static readonly SmtpPorts: any;
|
|
78
|
+
static createSpfRecord(domain: string, hostedZoneId: string, options?: {
|
|
79
|
+
includeDomains?: string[]
|
|
80
|
+
softFail?: boolean
|
|
81
|
+
}): {
|
|
82
|
+
record: Route53RecordSet
|
|
83
|
+
logicalId: string
|
|
84
|
+
};
|
|
85
|
+
static createDmarcRecord(domain: string, hostedZoneId: string, options?: {
|
|
86
|
+
policy?: 'none' | 'quarantine' | 'reject'
|
|
87
|
+
subdomainPolicy?: 'none' | 'quarantine' | 'reject'
|
|
88
|
+
percentage?: number
|
|
89
|
+
reportingEmail?: string
|
|
90
|
+
forensicEmail?: string
|
|
91
|
+
}): {
|
|
92
|
+
record: Route53RecordSet
|
|
93
|
+
logicalId: string
|
|
94
|
+
};
|
|
95
|
+
static createInboundEmailSetup(options: {
|
|
96
|
+
slug: string
|
|
97
|
+
environment: EnvironmentType
|
|
98
|
+
domain: string
|
|
99
|
+
s3BucketName: string
|
|
100
|
+
s3KeyPrefix?: string
|
|
101
|
+
region: string
|
|
102
|
+
hostedZoneId: string
|
|
103
|
+
lambdaFunctionArn?: string
|
|
104
|
+
snsTopicArn?: string
|
|
105
|
+
}): {
|
|
106
|
+
resources: Record<string, any>
|
|
107
|
+
outputs: {
|
|
108
|
+
ruleSetLogicalId: string
|
|
109
|
+
ruleLogicalId: string
|
|
110
|
+
mxRecordLogicalId: string
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
static createCompleteDomainSetup(options: {
|
|
114
|
+
slug: string
|
|
115
|
+
environment: EnvironmentType
|
|
116
|
+
domain: string
|
|
117
|
+
hostedZoneId: string
|
|
118
|
+
region: string
|
|
119
|
+
enableInbound?: boolean
|
|
120
|
+
inboundS3Bucket?: string
|
|
121
|
+
dmarcReportingEmail?: string
|
|
122
|
+
}): {
|
|
123
|
+
resources: Record<string, any>
|
|
124
|
+
outputs: {
|
|
125
|
+
identityLogicalId: string
|
|
126
|
+
configSetLogicalId: string
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
static readonly InboundSmtpEndpoints: Record<string, string>;
|
|
130
|
+
static supportsInboundEmail(region: string): boolean;
|
|
131
|
+
static createEmailLambdaRole(options: {
|
|
132
|
+
slug: string
|
|
133
|
+
environment: EnvironmentType
|
|
134
|
+
s3BucketArn: string
|
|
135
|
+
sesIdentityArn?: string
|
|
136
|
+
}): {
|
|
137
|
+
role: IAMRole
|
|
138
|
+
policy: IAMPolicy
|
|
139
|
+
roleLogicalId: string
|
|
140
|
+
policyLogicalId: string
|
|
141
|
+
};
|
|
142
|
+
static createOutboundEmailLambda(options: {
|
|
143
|
+
slug: string
|
|
144
|
+
environment: EnvironmentType
|
|
145
|
+
roleArn: string
|
|
146
|
+
domain: string
|
|
147
|
+
configurationSetName?: string
|
|
148
|
+
timeout?: number
|
|
149
|
+
memorySize?: number
|
|
150
|
+
}): {
|
|
151
|
+
function: LambdaFunction
|
|
152
|
+
logicalId: string
|
|
153
|
+
};
|
|
154
|
+
static createInboundEmailLambda(options: {
|
|
155
|
+
slug: string
|
|
156
|
+
environment: EnvironmentType
|
|
157
|
+
roleArn: string
|
|
158
|
+
s3BucketName: string
|
|
159
|
+
organizedPrefix?: string
|
|
160
|
+
timeout?: number
|
|
161
|
+
memorySize?: number
|
|
162
|
+
}): {
|
|
163
|
+
function: LambdaFunction
|
|
164
|
+
permission: LambdaPermission
|
|
165
|
+
logicalId: string
|
|
166
|
+
permissionLogicalId: string
|
|
167
|
+
};
|
|
168
|
+
static createEmailConversionLambda(options: {
|
|
169
|
+
slug: string
|
|
170
|
+
environment: EnvironmentType
|
|
171
|
+
roleArn: string
|
|
172
|
+
s3BucketName: string
|
|
173
|
+
convertedPrefix?: string
|
|
174
|
+
timeout?: number
|
|
175
|
+
memorySize?: number
|
|
176
|
+
}): {
|
|
177
|
+
function: LambdaFunction
|
|
178
|
+
logicalId: string
|
|
179
|
+
};
|
|
180
|
+
static createEmailBucketNotification(options: {
|
|
181
|
+
bucketLogicalId: string
|
|
182
|
+
lambdaArn: string
|
|
183
|
+
prefix?: string
|
|
184
|
+
suffix?: string
|
|
185
|
+
events?: string[]
|
|
186
|
+
}): {
|
|
187
|
+
notificationConfiguration: NonNullable<NonNullable<S3Bucket['Properties']>['NotificationConfiguration']>
|
|
188
|
+
};
|
|
189
|
+
static createS3LambdaPermission(options: {
|
|
190
|
+
slug: string
|
|
191
|
+
environment: EnvironmentType
|
|
192
|
+
lambdaLogicalId: string
|
|
193
|
+
s3BucketArn: string
|
|
194
|
+
}): {
|
|
195
|
+
permission: LambdaPermission
|
|
196
|
+
logicalId: string
|
|
197
|
+
};
|
|
198
|
+
static createEmailProcessingStack(options: {
|
|
199
|
+
slug: string
|
|
200
|
+
environment: EnvironmentType
|
|
201
|
+
domain: string
|
|
202
|
+
s3BucketName: string
|
|
203
|
+
s3BucketArn: string
|
|
204
|
+
configurationSetName?: string
|
|
205
|
+
enableInbound?: boolean
|
|
206
|
+
enableConversion?: boolean
|
|
207
|
+
}): {
|
|
208
|
+
resources: Record<string, any>
|
|
209
|
+
outputs: {
|
|
210
|
+
roleLogicalId: string
|
|
211
|
+
outboundLambdaLogicalId: string
|
|
212
|
+
inboundLambdaLogicalId?: string
|
|
213
|
+
conversionLambdaLogicalId?: string
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
static readonly LambdaCode: any;
|
|
217
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { EC2SecurityGroup, EFSAccessPoint, EFSFileSystem, EFSMountTarget, } from '@stacksjs/ts-cloud-aws-types';
|
|
2
|
+
import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
|
|
3
|
+
export declare interface FileSystemOptions {
|
|
4
|
+
slug: string
|
|
5
|
+
environment: EnvironmentType
|
|
6
|
+
encrypted?: boolean
|
|
7
|
+
kmsKeyId?: string
|
|
8
|
+
performanceMode?: 'generalPurpose' | 'maxIO'
|
|
9
|
+
throughputMode?: 'bursting' | 'provisioned' | 'elastic'
|
|
10
|
+
provisionedThroughput?: number
|
|
11
|
+
enableBackup?: boolean
|
|
12
|
+
}
|
|
13
|
+
export declare interface MountTargetOptions {
|
|
14
|
+
slug: string
|
|
15
|
+
environment: EnvironmentType
|
|
16
|
+
subnetId: string
|
|
17
|
+
securityGroups: string[]
|
|
18
|
+
ipAddress?: string
|
|
19
|
+
}
|
|
20
|
+
export declare interface AccessPointOptions {
|
|
21
|
+
slug: string
|
|
22
|
+
environment: EnvironmentType
|
|
23
|
+
path?: string
|
|
24
|
+
uid?: string
|
|
25
|
+
gid?: string
|
|
26
|
+
permissions?: string
|
|
27
|
+
}
|
|
28
|
+
export declare interface LifecyclePolicyOptions {
|
|
29
|
+
transitionToIA?: 7 | 14 | 30 | 60 | 90
|
|
30
|
+
transitionToPrimary?: boolean
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* FileSystem Module - EFS (Elastic File System)
|
|
34
|
+
* Provides clean API for creating and configuring shared file systems
|
|
35
|
+
*/
|
|
36
|
+
export declare class FileSystem {
|
|
37
|
+
static createFileSystem(options: FileSystemOptions): {
|
|
38
|
+
fileSystem: EFSFileSystem
|
|
39
|
+
logicalId: string
|
|
40
|
+
};
|
|
41
|
+
static createMountTarget(fileSystemLogicalId: string, options: MountTargetOptions): {
|
|
42
|
+
mountTarget: EFSMountTarget
|
|
43
|
+
logicalId: string
|
|
44
|
+
};
|
|
45
|
+
static createAccessPoint(fileSystemLogicalId: string, options: AccessPointOptions): {
|
|
46
|
+
accessPoint: EFSAccessPoint
|
|
47
|
+
logicalId: string
|
|
48
|
+
};
|
|
49
|
+
static setLifecyclePolicy(fileSystem: EFSFileSystem, options: LifecyclePolicyOptions): EFSFileSystem;
|
|
50
|
+
static enableBackup(fileSystem: EFSFileSystem): EFSFileSystem;
|
|
51
|
+
static disableBackup(fileSystem: EFSFileSystem): EFSFileSystem;
|
|
52
|
+
static setProvisionedThroughput(fileSystem: EFSFileSystem, throughputInMibps: number): EFSFileSystem;
|
|
53
|
+
static setElasticThroughput(fileSystem: EFSFileSystem): EFSFileSystem;
|
|
54
|
+
static enableMaxIO(fileSystem: EFSFileSystem): EFSFileSystem;
|
|
55
|
+
static createEfsSecurityGroup(options: {
|
|
56
|
+
slug: string
|
|
57
|
+
environment: EnvironmentType
|
|
58
|
+
vpcId: string
|
|
59
|
+
sourceSecurityGroupIds?: string[]
|
|
60
|
+
sourceCidrBlocks?: string[]
|
|
61
|
+
description?: string
|
|
62
|
+
}): {
|
|
63
|
+
securityGroup: EC2SecurityGroup
|
|
64
|
+
logicalId: string
|
|
65
|
+
};
|
|
66
|
+
static createMultiAzMountTargets(fileSystemLogicalId: string, options: {
|
|
67
|
+
slug: string
|
|
68
|
+
environment: EnvironmentType
|
|
69
|
+
subnetIds: string[]
|
|
70
|
+
securityGroupId: string
|
|
71
|
+
}): {
|
|
72
|
+
mountTargets: EFSMountTarget[]
|
|
73
|
+
logicalIds: string[]
|
|
74
|
+
};
|
|
75
|
+
static createCompleteFileSystem(options: {
|
|
76
|
+
slug: string
|
|
77
|
+
environment: EnvironmentType
|
|
78
|
+
vpcId: string
|
|
79
|
+
subnetIds: string[]
|
|
80
|
+
sourceSecurityGroupIds?: string[]
|
|
81
|
+
encrypted?: boolean
|
|
82
|
+
performanceMode?: 'generalPurpose' | 'maxIO'
|
|
83
|
+
throughputMode?: 'bursting' | 'provisioned' | 'elastic'
|
|
84
|
+
enableBackup?: boolean
|
|
85
|
+
transitionToIA?: 7 | 14 | 30 | 60 | 90
|
|
86
|
+
}): {
|
|
87
|
+
resources: Record<string, any>
|
|
88
|
+
outputs: {
|
|
89
|
+
fileSystemId: string
|
|
90
|
+
securityGroupId: string
|
|
91
|
+
mountTargetIds: string[]
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * from './storage';
|
|
2
|
+
export * from './registry';
|
|
3
|
+
export * from './cdn';
|
|
4
|
+
export * from './dns';
|
|
5
|
+
export * from './security';
|
|
6
|
+
export * from './compute';
|
|
7
|
+
export * from './network';
|
|
8
|
+
export * from './filesystem';
|
|
9
|
+
export * from './email';
|
|
10
|
+
export * from './phone';
|
|
11
|
+
export * from './queue';
|
|
12
|
+
export * from './sms';
|
|
13
|
+
export * from './ai';
|
|
14
|
+
export * from './database';
|
|
15
|
+
export * from './cache';
|
|
16
|
+
export * from './permissions';
|
|
17
|
+
export * from './api';
|
|
18
|
+
export * from './messaging';
|
|
19
|
+
export * from './workflow';
|
|
20
|
+
export * from './monitoring';
|
|
21
|
+
export * from './auth';
|
|
22
|
+
export * from './deployment';
|
|
23
|
+
export * from './secrets';
|
|
24
|
+
export * from './parameter-store';
|
|
25
|
+
export * from './search';
|
|
26
|
+
export * from './redirects';
|
|
27
|
+
export * from './communication';
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
|
|
2
|
+
import type { SNSSubscription, SNSTopic, SNSTopicPolicy, } from '@stacksjs/ts-cloud-aws-types';
|
|
3
|
+
export declare interface TopicOptions {
|
|
4
|
+
slug: string
|
|
5
|
+
environment: EnvironmentType
|
|
6
|
+
topicName?: string
|
|
7
|
+
displayName?: string
|
|
8
|
+
encrypted?: boolean
|
|
9
|
+
kmsKeyId?: string
|
|
10
|
+
}
|
|
11
|
+
export declare interface SubscriptionOptions {
|
|
12
|
+
slug: string
|
|
13
|
+
environment: EnvironmentType
|
|
14
|
+
protocol: 'http' | 'https' | 'email' | 'email-json' | 'sms' | 'sqs' | 'application' | 'lambda' | 'firehose'
|
|
15
|
+
endpoint: string
|
|
16
|
+
filterPolicy?: Record<string, unknown>
|
|
17
|
+
rawMessageDelivery?: boolean
|
|
18
|
+
}
|
|
19
|
+
export declare interface TopicPolicyOptions {
|
|
20
|
+
slug: string
|
|
21
|
+
environment: EnvironmentType
|
|
22
|
+
allowedPrincipals?: string | string[]
|
|
23
|
+
allowedServices?: string | string[]
|
|
24
|
+
actions?: string | string[]
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Messaging Module - SNS (Simple Notification Service)
|
|
28
|
+
* Provides clean API for pub/sub messaging, notifications, and event routing
|
|
29
|
+
*/
|
|
30
|
+
export declare class Messaging {
|
|
31
|
+
static createTopic(options: TopicOptions): {
|
|
32
|
+
topic: SNSTopic
|
|
33
|
+
logicalId: string
|
|
34
|
+
};
|
|
35
|
+
static subscribe(topicLogicalId: string, options: SubscriptionOptions): {
|
|
36
|
+
subscription: SNSSubscription
|
|
37
|
+
logicalId: string
|
|
38
|
+
};
|
|
39
|
+
static subscribeEmail(topicLogicalId: string, email: string, options: {
|
|
40
|
+
slug: string
|
|
41
|
+
environment: EnvironmentType
|
|
42
|
+
filterPolicy?: Record<string, unknown>
|
|
43
|
+
}): {
|
|
44
|
+
subscription: SNSSubscription
|
|
45
|
+
logicalId: string
|
|
46
|
+
};
|
|
47
|
+
static subscribeLambda(topicLogicalId: string, functionArn: string, options: {
|
|
48
|
+
slug: string
|
|
49
|
+
environment: EnvironmentType
|
|
50
|
+
filterPolicy?: Record<string, unknown>
|
|
51
|
+
}): {
|
|
52
|
+
subscription: SNSSubscription
|
|
53
|
+
logicalId: string
|
|
54
|
+
};
|
|
55
|
+
static subscribeSqs(topicLogicalId: string, queueArn: string, options: {
|
|
56
|
+
slug: string
|
|
57
|
+
environment: EnvironmentType
|
|
58
|
+
filterPolicy?: Record<string, unknown>
|
|
59
|
+
rawMessageDelivery?: boolean
|
|
60
|
+
}): {
|
|
61
|
+
subscription: SNSSubscription
|
|
62
|
+
logicalId: string
|
|
63
|
+
};
|
|
64
|
+
static subscribeHttp(topicLogicalId: string, url: string, options: {
|
|
65
|
+
slug: string
|
|
66
|
+
environment: EnvironmentType
|
|
67
|
+
filterPolicy?: Record<string, unknown>
|
|
68
|
+
}): {
|
|
69
|
+
subscription: SNSSubscription
|
|
70
|
+
logicalId: string
|
|
71
|
+
};
|
|
72
|
+
static subscribeSms(topicLogicalId: string, phoneNumber: string, options: {
|
|
73
|
+
slug: string
|
|
74
|
+
environment: EnvironmentType
|
|
75
|
+
}): {
|
|
76
|
+
subscription: SNSSubscription
|
|
77
|
+
logicalId: string
|
|
78
|
+
};
|
|
79
|
+
static setTopicPolicy(topicLogicalId: string, options: TopicPolicyOptions): {
|
|
80
|
+
policy: SNSTopicPolicy
|
|
81
|
+
logicalId: string
|
|
82
|
+
};
|
|
83
|
+
static allowCloudWatchAlarms(topicLogicalId: string, options: {
|
|
84
|
+
slug: string
|
|
85
|
+
environment: EnvironmentType
|
|
86
|
+
}): {
|
|
87
|
+
policy: SNSTopicPolicy
|
|
88
|
+
logicalId: string
|
|
89
|
+
};
|
|
90
|
+
static allowEventBridge(topicLogicalId: string, options: {
|
|
91
|
+
slug: string
|
|
92
|
+
environment: EnvironmentType
|
|
93
|
+
}): {
|
|
94
|
+
policy: SNSTopicPolicy
|
|
95
|
+
logicalId: string
|
|
96
|
+
};
|
|
97
|
+
static allowS3(topicLogicalId: string, options: {
|
|
98
|
+
slug: string
|
|
99
|
+
environment: EnvironmentType
|
|
100
|
+
}): {
|
|
101
|
+
policy: SNSTopicPolicy
|
|
102
|
+
logicalId: string
|
|
103
|
+
};
|
|
104
|
+
static enableEncryption(topic: SNSTopic, kmsKeyId: string): SNSTopic;
|
|
105
|
+
static addInlineSubscription(topic: SNSTopic, protocol: SubscriptionOptions['protocol'], endpoint: string): SNSTopic;
|
|
106
|
+
static readonly FilterPolicies: any;
|
|
107
|
+
static readonly UseCases: any;
|
|
108
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { CloudWatchAlarm, CloudWatchDashboard, CloudWatchLogGroup, CloudWatchLogStream, CloudWatchMetricFilter, CloudWatchCompositeAlarm, } from '@stacksjs/ts-cloud-aws-types';
|
|
2
|
+
import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
|
|
3
|
+
export declare interface AlarmOptions {
|
|
4
|
+
slug: string
|
|
5
|
+
environment: EnvironmentType
|
|
6
|
+
alarmName?: string
|
|
7
|
+
metricName: string
|
|
8
|
+
namespace: string
|
|
9
|
+
statistic?: 'Average' | 'Sum' | 'Minimum' | 'Maximum' | 'SampleCount'
|
|
10
|
+
period?: number
|
|
11
|
+
evaluationPeriods?: number
|
|
12
|
+
threshold: number
|
|
13
|
+
comparisonOperator: 'GreaterThanThreshold' | 'GreaterThanOrEqualToThreshold' | 'LessThanThreshold' | 'LessThanOrEqualToThreshold'
|
|
14
|
+
treatMissingData?: 'breaching' | 'notBreaching' | 'ignore' | 'missing'
|
|
15
|
+
actionsEnabled?: boolean
|
|
16
|
+
alarmActions?: string[]
|
|
17
|
+
okActions?: string[]
|
|
18
|
+
insufficientDataActions?: string[]
|
|
19
|
+
dimensions?: Record<string, string>
|
|
20
|
+
unit?: string
|
|
21
|
+
datapointsToAlarm?: number
|
|
22
|
+
}
|
|
23
|
+
export declare interface DashboardOptions {
|
|
24
|
+
slug: string
|
|
25
|
+
environment: EnvironmentType
|
|
26
|
+
dashboardName?: string
|
|
27
|
+
widgets: DashboardWidget[]
|
|
28
|
+
}
|
|
29
|
+
export declare interface DashboardWidget {
|
|
30
|
+
type: 'metric' | 'log' | 'text' | 'alarm'
|
|
31
|
+
x: number
|
|
32
|
+
y: number
|
|
33
|
+
width: number
|
|
34
|
+
height: number
|
|
35
|
+
properties: Record<string, unknown>
|
|
36
|
+
}
|
|
37
|
+
export declare interface LogGroupOptions {
|
|
38
|
+
slug: string
|
|
39
|
+
environment: EnvironmentType
|
|
40
|
+
logGroupName?: string
|
|
41
|
+
retentionInDays?: number
|
|
42
|
+
kmsKeyId?: string
|
|
43
|
+
}
|
|
44
|
+
export declare interface LogStreamOptions {
|
|
45
|
+
slug: string
|
|
46
|
+
environment: EnvironmentType
|
|
47
|
+
logStreamName?: string
|
|
48
|
+
}
|
|
49
|
+
export declare interface MetricFilterOptions {
|
|
50
|
+
slug: string
|
|
51
|
+
environment: EnvironmentType
|
|
52
|
+
filterName?: string
|
|
53
|
+
filterPattern: string
|
|
54
|
+
metricTransformations: MetricTransformation[]
|
|
55
|
+
}
|
|
56
|
+
export declare interface MetricTransformation {
|
|
57
|
+
metricName: string
|
|
58
|
+
metricNamespace: string
|
|
59
|
+
metricValue: string
|
|
60
|
+
defaultValue?: number
|
|
61
|
+
unit?: string
|
|
62
|
+
}
|
|
63
|
+
export declare interface CompositeAlarmOptions {
|
|
64
|
+
slug: string
|
|
65
|
+
environment: EnvironmentType
|
|
66
|
+
alarmName?: string
|
|
67
|
+
alarmRule: string
|
|
68
|
+
actionsEnabled?: boolean
|
|
69
|
+
alarmActions?: string[]
|
|
70
|
+
okActions?: string[]
|
|
71
|
+
insufficientDataActions?: string[]
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Monitoring Module - CloudWatch
|
|
75
|
+
* Provides clean API for alarms, dashboards, logs, and metrics
|
|
76
|
+
*/
|
|
77
|
+
export declare class Monitoring {
|
|
78
|
+
static createAlarm(options: AlarmOptions): {
|
|
79
|
+
alarm: CloudWatchAlarm
|
|
80
|
+
logicalId: string
|
|
81
|
+
};
|
|
82
|
+
static createCompositeAlarm(options: CompositeAlarmOptions): {
|
|
83
|
+
alarm: CloudWatchCompositeAlarm
|
|
84
|
+
logicalId: string
|
|
85
|
+
};
|
|
86
|
+
static createDashboard(options: DashboardOptions): {
|
|
87
|
+
dashboard: CloudWatchDashboard
|
|
88
|
+
logicalId: string
|
|
89
|
+
};
|
|
90
|
+
static createLogGroup(options: LogGroupOptions): {
|
|
91
|
+
logGroup: CloudWatchLogGroup
|
|
92
|
+
logicalId: string
|
|
93
|
+
};
|
|
94
|
+
static createLogStream(logGroupLogicalId: string, options: LogStreamOptions): {
|
|
95
|
+
logStream: CloudWatchLogStream
|
|
96
|
+
logicalId: string
|
|
97
|
+
};
|
|
98
|
+
static createMetricFilter(logGroupLogicalId: string, options: MetricFilterOptions): {
|
|
99
|
+
metricFilter: CloudWatchMetricFilter
|
|
100
|
+
logicalId: string
|
|
101
|
+
};
|
|
102
|
+
static readonly AlarmTypes: any;
|
|
103
|
+
static readonly DashboardWidgets: any;
|
|
104
|
+
static readonly RetentionPeriods: any;
|
|
105
|
+
static readonly FilterPatterns: any;
|
|
106
|
+
static createApplicationDashboard(options: {
|
|
107
|
+
slug: string
|
|
108
|
+
environment: EnvironmentType
|
|
109
|
+
region?: string
|
|
110
|
+
components?: {
|
|
111
|
+
ec2InstanceIds?: string[]
|
|
112
|
+
lambdaFunctionNames?: string[]
|
|
113
|
+
ecsClusterName?: string
|
|
114
|
+
ecsServiceName?: string
|
|
115
|
+
albName?: string
|
|
116
|
+
targetGroupName?: string
|
|
117
|
+
rdsInstanceId?: string
|
|
118
|
+
sqsQueueNames?: string[]
|
|
119
|
+
logGroupNames?: string[]
|
|
120
|
+
}
|
|
121
|
+
}): {
|
|
122
|
+
dashboard: CloudWatchDashboard
|
|
123
|
+
logicalId: string
|
|
124
|
+
};
|
|
125
|
+
static readonly DashboardTemplates: any;
|
|
126
|
+
static readonly Config: any;
|
|
127
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { EC2EIP, EC2FlowLog, EC2InternetGateway, EC2NatGateway, EC2Route, EC2RouteTable, EC2Subnet, EC2SubnetRouteTableAssociation, EC2VPC, EC2VPCGatewayAttachment, } from '@stacksjs/ts-cloud-aws-types';
|
|
2
|
+
import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
|
|
3
|
+
export declare interface VpcOptions {
|
|
4
|
+
slug: string
|
|
5
|
+
environment: EnvironmentType
|
|
6
|
+
cidr?: string
|
|
7
|
+
enableDnsHostnames?: boolean
|
|
8
|
+
enableDnsSupport?: boolean
|
|
9
|
+
zones?: number
|
|
10
|
+
}
|
|
11
|
+
export declare interface SubnetOptions {
|
|
12
|
+
slug: string
|
|
13
|
+
environment: EnvironmentType
|
|
14
|
+
vpcId: string
|
|
15
|
+
type: 'public' | 'private' | 'isolated'
|
|
16
|
+
cidr: string
|
|
17
|
+
availabilityZone: string
|
|
18
|
+
mapPublicIp?: boolean
|
|
19
|
+
}
|
|
20
|
+
export declare interface NatGatewayOptions {
|
|
21
|
+
slug: string
|
|
22
|
+
environment: EnvironmentType
|
|
23
|
+
subnetId: string
|
|
24
|
+
}
|
|
25
|
+
export declare interface FlowLogOptions {
|
|
26
|
+
slug: string
|
|
27
|
+
environment: EnvironmentType
|
|
28
|
+
resourceId: string
|
|
29
|
+
resourceType: 'VPC' | 'Subnet'
|
|
30
|
+
trafficType?: 'ACCEPT' | 'REJECT' | 'ALL'
|
|
31
|
+
logGroupName?: string
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Network Module - VPC, Subnets, NAT, Internet Gateway
|
|
35
|
+
* Provides clean API for creating and configuring networking resources
|
|
36
|
+
*/
|
|
37
|
+
export declare class Network {
|
|
38
|
+
static createVpc(options: VpcOptions): {
|
|
39
|
+
vpc: EC2VPC
|
|
40
|
+
logicalId: string
|
|
41
|
+
};
|
|
42
|
+
static createSubnet(options: SubnetOptions): {
|
|
43
|
+
subnet: EC2Subnet
|
|
44
|
+
logicalId: string
|
|
45
|
+
};
|
|
46
|
+
static createInternetGateway(slug: string, environment: EnvironmentType): {
|
|
47
|
+
internetGateway: EC2InternetGateway
|
|
48
|
+
logicalId: string
|
|
49
|
+
};
|
|
50
|
+
static attachInternetGateway(vpcLogicalId: string, igwLogicalId: string): {
|
|
51
|
+
attachment: EC2VPCGatewayAttachment
|
|
52
|
+
logicalId: string
|
|
53
|
+
};
|
|
54
|
+
static createEip(slug: string, environment: EnvironmentType): {
|
|
55
|
+
eip: EC2EIP
|
|
56
|
+
logicalId: string
|
|
57
|
+
};
|
|
58
|
+
static createNatGateway(options: NatGatewayOptions, eipLogicalId: string): {
|
|
59
|
+
natGateway: EC2NatGateway
|
|
60
|
+
logicalId: string
|
|
61
|
+
};
|
|
62
|
+
static createRouteTable(slug: string, environment: EnvironmentType, vpcLogicalId: string, type: 'public' | 'private'): {
|
|
63
|
+
routeTable: EC2RouteTable
|
|
64
|
+
logicalId: string
|
|
65
|
+
};
|
|
66
|
+
static createRoute(routeTableLogicalId: string, destination: string, target: {
|
|
67
|
+
type: 'igw' | 'nat' | 'instance'
|
|
68
|
+
logicalId: string
|
|
69
|
+
}): {
|
|
70
|
+
route: EC2Route
|
|
71
|
+
logicalId: string
|
|
72
|
+
};
|
|
73
|
+
static associateSubnetWithRouteTable(subnetLogicalId: string, routeTableLogicalId: string): {
|
|
74
|
+
association: EC2SubnetRouteTableAssociation
|
|
75
|
+
logicalId: string
|
|
76
|
+
};
|
|
77
|
+
static enableFlowLogs(options: FlowLogOptions): {
|
|
78
|
+
flowLog: EC2FlowLog
|
|
79
|
+
logicalId: string
|
|
80
|
+
};
|
|
81
|
+
static calculateSubnetCidrs(vpcCidr: string, zones: number, subnetsPerZone?: any): string[];
|
|
82
|
+
static getAvailabilityZones(region: string, count: number): string[];
|
|
83
|
+
static createMultiAzNetwork(options: {
|
|
84
|
+
slug: string
|
|
85
|
+
environment: EnvironmentType
|
|
86
|
+
region: string
|
|
87
|
+
cidr?: string
|
|
88
|
+
zones?: number
|
|
89
|
+
enableNatGateway?: boolean
|
|
90
|
+
singleNatGateway?: boolean // Use single NAT for cost savings (not HA)
|
|
91
|
+
enableFlowLogs?: boolean
|
|
92
|
+
}): {
|
|
93
|
+
resources: Record<string, any>
|
|
94
|
+
outputs: {
|
|
95
|
+
vpcId: string
|
|
96
|
+
publicSubnetIds: string[]
|
|
97
|
+
privateSubnetIds: string[]
|
|
98
|
+
natGatewayIds?: string[]
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
static readonly NatGatewayCostWarning: any;
|
|
102
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { SSMParameter } from '@stacksjs/ts-cloud-aws-types';
|
|
2
|
+
export declare interface ParameterOptions {
|
|
3
|
+
slug: string
|
|
4
|
+
environment: string
|
|
5
|
+
parameterName?: string
|
|
6
|
+
value: string
|
|
7
|
+
type?: 'String' | 'StringList' | 'SecureString'
|
|
8
|
+
description?: string
|
|
9
|
+
tier?: 'Standard' | 'Advanced' | 'Intelligent-Tiering'
|
|
10
|
+
tags?: Record<string, string>
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Parameter Store Module
|
|
14
|
+
*/
|
|
15
|
+
export declare class ParameterStore {
|
|
16
|
+
static createParameter(options: ParameterOptions): {
|
|
17
|
+
parameter: SSMParameter
|
|
18
|
+
logicalId: string
|
|
19
|
+
};
|
|
20
|
+
static createString(slug: string, environment: string, name: string, value: string, description?: string): {
|
|
21
|
+
parameter: SSMParameter
|
|
22
|
+
logicalId: string
|
|
23
|
+
};
|
|
24
|
+
static createSecureString(slug: string, environment: string, name: string, value: string, description?: string): {
|
|
25
|
+
parameter: SSMParameter
|
|
26
|
+
logicalId: string
|
|
27
|
+
};
|
|
28
|
+
static createStringList(slug: string, environment: string, name: string, values: string[], description?: string): {
|
|
29
|
+
parameter: SSMParameter
|
|
30
|
+
logicalId: string
|
|
31
|
+
};
|
|
32
|
+
static readonly Parameters: any;
|
|
33
|
+
}
|