@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,100 @@
|
|
|
1
|
+
import type { ACMCertificate, KMSAlias, KMSKey, WAFv2IPSet, WAFv2WebACL } from '@stacksjs/ts-cloud-aws-types';
|
|
2
|
+
import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
|
|
3
|
+
export declare interface CertificateOptions {
|
|
4
|
+
domain: string
|
|
5
|
+
subdomains?: string[]
|
|
6
|
+
slug: string
|
|
7
|
+
environment: EnvironmentType
|
|
8
|
+
validationMethod?: 'DNS' | 'EMAIL'
|
|
9
|
+
hostedZoneId?: string
|
|
10
|
+
}
|
|
11
|
+
export declare interface KmsKeyOptions {
|
|
12
|
+
description: string
|
|
13
|
+
slug: string
|
|
14
|
+
environment: EnvironmentType
|
|
15
|
+
enableRotation?: boolean
|
|
16
|
+
multiRegion?: boolean
|
|
17
|
+
}
|
|
18
|
+
export declare interface FirewallOptions {
|
|
19
|
+
slug: string
|
|
20
|
+
environment: EnvironmentType
|
|
21
|
+
scope?: 'CLOUDFRONT' | 'REGIONAL'
|
|
22
|
+
defaultAction?: 'allow' | 'block'
|
|
23
|
+
}
|
|
24
|
+
export declare interface RateLimitRule {
|
|
25
|
+
name: string
|
|
26
|
+
priority: number
|
|
27
|
+
requestsPerWindow: number
|
|
28
|
+
aggregateKeyType?: 'IP' | 'FORWARDED_IP'
|
|
29
|
+
}
|
|
30
|
+
export declare interface GeoBlockRule {
|
|
31
|
+
name: string
|
|
32
|
+
priority: number
|
|
33
|
+
countryCodes: string[]
|
|
34
|
+
}
|
|
35
|
+
export declare interface IpBlockRule {
|
|
36
|
+
name: string
|
|
37
|
+
priority: number
|
|
38
|
+
ipAddresses: string[]
|
|
39
|
+
ipVersion?: 'IPV4' | 'IPV6'
|
|
40
|
+
}
|
|
41
|
+
export declare interface ManagedRuleGroup {
|
|
42
|
+
name: string
|
|
43
|
+
priority: number
|
|
44
|
+
vendorName: string
|
|
45
|
+
ruleName: string
|
|
46
|
+
excludedRules?: string[]
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Security Module - ACM, KMS, WAF Management
|
|
50
|
+
* Provides clean API for creating and configuring security resources
|
|
51
|
+
*/
|
|
52
|
+
export declare class Security {
|
|
53
|
+
static createCertificate(options: CertificateOptions): {
|
|
54
|
+
certificate: ACMCertificate
|
|
55
|
+
logicalId: string
|
|
56
|
+
};
|
|
57
|
+
static createKmsKey(options: KmsKeyOptions): {
|
|
58
|
+
key: KMSKey
|
|
59
|
+
alias?: KMSAlias
|
|
60
|
+
logicalId: string
|
|
61
|
+
aliasId?: string
|
|
62
|
+
};
|
|
63
|
+
static createFirewall(options: FirewallOptions): {
|
|
64
|
+
webAcl: WAFv2WebACL
|
|
65
|
+
logicalId: string
|
|
66
|
+
};
|
|
67
|
+
static setRateLimit(webAcl: WAFv2WebACL, rule: RateLimitRule): WAFv2WebACL;
|
|
68
|
+
static blockCountries(webAcl: WAFv2WebACL, rule: GeoBlockRule): WAFv2WebACL;
|
|
69
|
+
static blockIpAddresses(webAcl: WAFv2WebACL, rule: IpBlockRule, slug: string, environment: EnvironmentType): {
|
|
70
|
+
webAcl: WAFv2WebACL
|
|
71
|
+
ipSet: WAFv2IPSet
|
|
72
|
+
ipSetLogicalId: string
|
|
73
|
+
};
|
|
74
|
+
static addManagedRules(webAcl: WAFv2WebACL, rule: ManagedRuleGroup): WAFv2WebACL;
|
|
75
|
+
static readonly ManagedRuleGroups: any;
|
|
76
|
+
static setPathRateLimit(webAcl: WAFv2WebACL, rule: RateLimitRule & { paths: string[] }): WAFv2WebACL;
|
|
77
|
+
static setHeaderRateLimit(webAcl: WAFv2WebACL, rule: RateLimitRule & { headerName: string, headerValue?: string }): WAFv2WebACL;
|
|
78
|
+
static protectLoginEndpoint(webAcl: WAFv2WebACL, options: {
|
|
79
|
+
loginPaths: string[]
|
|
80
|
+
priority: number
|
|
81
|
+
requestsPerMinute?: number
|
|
82
|
+
}): WAFv2WebACL;
|
|
83
|
+
static protectApiEndpoints(webAcl: WAFv2WebACL, options: {
|
|
84
|
+
apiPaths: string[]
|
|
85
|
+
priority: number
|
|
86
|
+
requestsPerMinute?: number
|
|
87
|
+
}): WAFv2WebACL;
|
|
88
|
+
static createProtectedFirewall(options: {
|
|
89
|
+
slug: string
|
|
90
|
+
environment: EnvironmentType
|
|
91
|
+
scope?: 'CLOUDFRONT' | 'REGIONAL'
|
|
92
|
+
enableBotControl?: boolean
|
|
93
|
+
enableRateLimiting?: boolean
|
|
94
|
+
rateLimitPerMinute?: number
|
|
95
|
+
}): {
|
|
96
|
+
webAcl: WAFv2WebACL
|
|
97
|
+
logicalId: string
|
|
98
|
+
};
|
|
99
|
+
static readonly RateLimitPresets: any;
|
|
100
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export declare interface SmsConfig {
|
|
2
|
+
slug: string
|
|
3
|
+
environment: string
|
|
4
|
+
senderId?: string
|
|
5
|
+
originationNumber?: string
|
|
6
|
+
messageType?: 'TRANSACTIONAL' | 'PROMOTIONAL'
|
|
7
|
+
twoWayEnabled?: boolean
|
|
8
|
+
webhookUrl?: string
|
|
9
|
+
}
|
|
10
|
+
export declare class SMS {
|
|
11
|
+
static LambdaCode: { send: typeof sendHandler; receive: typeof receiveHandler; deliveryStatus: typeof deliveryStatusHandler };
|
|
12
|
+
static createPinpointApp(config: { slug: string; name?: string }): Record<string, any>;
|
|
13
|
+
static createSmsChannel(config: {
|
|
14
|
+
slug: string
|
|
15
|
+
applicationId: string | { Ref: string }
|
|
16
|
+
senderId?: string
|
|
17
|
+
shortCode?: string
|
|
18
|
+
enabled?: boolean
|
|
19
|
+
}): Record<string, any>;
|
|
20
|
+
static createSmsLambdaRole(config: { slug: string }): Record<string, any>;
|
|
21
|
+
static createSendLambda(config: {
|
|
22
|
+
slug: string
|
|
23
|
+
roleArn: string | { 'Fn::GetAtt': string[] }
|
|
24
|
+
pinpointAppId: string | { Ref: string }
|
|
25
|
+
messageLogTable?: string | { Ref: string }
|
|
26
|
+
senderId?: string
|
|
27
|
+
originationNumber?: string
|
|
28
|
+
}): Record<string, any>;
|
|
29
|
+
static createReceiveLambda(config: {
|
|
30
|
+
slug: string
|
|
31
|
+
roleArn: string | { 'Fn::GetAtt': string[] }
|
|
32
|
+
optOutTable?: string | { Ref: string }
|
|
33
|
+
messageLogTable?: string | { Ref: string }
|
|
34
|
+
notificationTopicArn?: string | { Ref: string }
|
|
35
|
+
webhookUrl?: string
|
|
36
|
+
}): Record<string, any>;
|
|
37
|
+
static createDeliveryStatusLambda(config: {
|
|
38
|
+
slug: string
|
|
39
|
+
roleArn: string | { 'Fn::GetAtt': string[] }
|
|
40
|
+
messageLogTable?: string | { Ref: string }
|
|
41
|
+
notificationTopicArn?: string | { Ref: string }
|
|
42
|
+
webhookUrl?: string
|
|
43
|
+
}): Record<string, any>;
|
|
44
|
+
static createMessageLogTable(config: { slug: string }): Record<string, any>;
|
|
45
|
+
static createOptOutTable(config: { slug: string }): Record<string, any>;
|
|
46
|
+
static createNotificationTopic(config: { slug: string }): Record<string, any>;
|
|
47
|
+
static createCompleteSetup(config: SmsConfig): {
|
|
48
|
+
resources: Record<string, any>
|
|
49
|
+
outputs: Record<string, any>
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export default SMS;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Fn } from '../intrinsic-functions';
|
|
2
|
+
import type { BackupPlan, BackupSelection, BackupVault, S3Bucket, S3BucketPolicy } from '@stacksjs/ts-cloud-aws-types';
|
|
3
|
+
import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
|
|
4
|
+
import type { IAMRole } from '@stacksjs/ts-cloud-aws-types';
|
|
5
|
+
export declare interface BucketOptions {
|
|
6
|
+
name?: string
|
|
7
|
+
bucketName?: string
|
|
8
|
+
slug: string
|
|
9
|
+
environment: EnvironmentType
|
|
10
|
+
public?: boolean
|
|
11
|
+
versioning?: boolean
|
|
12
|
+
website?: boolean
|
|
13
|
+
encryption?: boolean
|
|
14
|
+
intelligentTiering?: boolean
|
|
15
|
+
cors?: CorsRule[]
|
|
16
|
+
lifecycleRules?: LifecycleRule[]
|
|
17
|
+
}
|
|
18
|
+
export declare interface CorsRule {
|
|
19
|
+
allowedOrigins: string[]
|
|
20
|
+
allowedMethods: string[]
|
|
21
|
+
allowedHeaders?: string[]
|
|
22
|
+
maxAge?: number
|
|
23
|
+
}
|
|
24
|
+
export declare interface LifecycleRule {
|
|
25
|
+
id: string
|
|
26
|
+
enabled: boolean
|
|
27
|
+
expirationDays?: number
|
|
28
|
+
transitions?: Array<{
|
|
29
|
+
days: number
|
|
30
|
+
storageClass: 'GLACIER' | 'DEEP_ARCHIVE' | 'INTELLIGENT_TIERING' | 'STANDARD_IA' | 'ONEZONE_IA'
|
|
31
|
+
}>
|
|
32
|
+
}
|
|
33
|
+
export declare interface S3NotificationConfig {
|
|
34
|
+
functionArn: string | { 'Fn::GetAtt': [string, string] }
|
|
35
|
+
events: Array<'s3:ObjectCreated:*' | 's3:ObjectCreated:Put' | 's3:ObjectCreated:Post' | 's3:ObjectCreated:Copy' | 's3:ObjectCreated:CompleteMultipartUpload' | 's3:ObjectRemoved:*' | 's3:ObjectRemoved:Delete' | 's3:ObjectRemoved:DeleteMarkerCreated'>
|
|
36
|
+
filter?: {
|
|
37
|
+
prefix?: string
|
|
38
|
+
suffix?: string
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export declare interface BackupPlanOptions {
|
|
42
|
+
name: string
|
|
43
|
+
slug: string
|
|
44
|
+
environment: EnvironmentType
|
|
45
|
+
bucketLogicalIds: string[]
|
|
46
|
+
retentionDays: number
|
|
47
|
+
schedule?: string
|
|
48
|
+
vaultName?: string
|
|
49
|
+
enableContinuousBackup?: boolean
|
|
50
|
+
moveToColdStorageAfterDays?: number
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Storage Module - S3 Bucket Management
|
|
54
|
+
* Provides clean API for creating and configuring S3 buckets
|
|
55
|
+
*/
|
|
56
|
+
export declare class Storage {
|
|
57
|
+
static createBucket(options: BucketOptions): { bucket: S3Bucket, bucketPolicy?: S3BucketPolicy, logicalId: string };
|
|
58
|
+
static enableVersioning(bucket: S3Bucket): S3Bucket;
|
|
59
|
+
static enableWebsiteHosting(bucket: S3Bucket, indexDocument?: any, errorDocument?: any): S3Bucket;
|
|
60
|
+
static setLifecycleRules(bucket: S3Bucket, rules: LifecycleRule[]): S3Bucket;
|
|
61
|
+
static enableIntelligentTiering(bucket: S3Bucket): S3Bucket;
|
|
62
|
+
static addLambdaNotification(bucket: S3Bucket, config: S3NotificationConfig): S3Bucket;
|
|
63
|
+
static readonly Notifications: any;
|
|
64
|
+
static createBackupPlan(options: BackupPlanOptions): {
|
|
65
|
+
vault: BackupVault
|
|
66
|
+
plan: BackupPlan
|
|
67
|
+
selection: BackupSelection
|
|
68
|
+
role: IAMRole
|
|
69
|
+
vaultLogicalId: string
|
|
70
|
+
planLogicalId: string
|
|
71
|
+
selectionLogicalId: string
|
|
72
|
+
roleLogicalId: string
|
|
73
|
+
};
|
|
74
|
+
static readonly BackupSchedules: any;
|
|
75
|
+
static readonly BackupRetention: any;
|
|
76
|
+
static createWwwRedirectBucket(options: {
|
|
77
|
+
slug: string
|
|
78
|
+
environment: EnvironmentType
|
|
79
|
+
sourceDomain: string // e.g., www.example.com
|
|
80
|
+
targetDomain: string // e.g., example.com
|
|
81
|
+
protocol?: 'http' | 'https'
|
|
82
|
+
}): { bucket: S3Bucket, bucketPolicy: S3BucketPolicy, logicalId: string };
|
|
83
|
+
static createDocsBucket(options: {
|
|
84
|
+
slug: string
|
|
85
|
+
environment: EnvironmentType
|
|
86
|
+
domain?: string
|
|
87
|
+
}): { bucket: S3Bucket, bucketPolicy?: S3BucketPolicy, logicalId: string };
|
|
88
|
+
static createEmailBucket(options: {
|
|
89
|
+
slug: string
|
|
90
|
+
environment: EnvironmentType
|
|
91
|
+
}): { bucket: S3Bucket, bucketPolicy: S3BucketPolicy, logicalId: string };
|
|
92
|
+
static docsExist(options?: {
|
|
93
|
+
projectRoot?: string
|
|
94
|
+
docsPaths?: string[]
|
|
95
|
+
}): {
|
|
96
|
+
exists: boolean
|
|
97
|
+
path: string | null
|
|
98
|
+
hasDistFolder: boolean
|
|
99
|
+
distPath: string | null
|
|
100
|
+
};
|
|
101
|
+
static createDocsBucketIfExists(options: {
|
|
102
|
+
slug: string
|
|
103
|
+
environment: EnvironmentType
|
|
104
|
+
domain?: string
|
|
105
|
+
projectRoot?: string
|
|
106
|
+
docsPaths?: string[]
|
|
107
|
+
}): {
|
|
108
|
+
bucket: S3Bucket | null
|
|
109
|
+
bucketPolicy?: S3BucketPolicy
|
|
110
|
+
logicalId: string | null
|
|
111
|
+
docsInfo: {
|
|
112
|
+
exists: boolean
|
|
113
|
+
path: string | null
|
|
114
|
+
hasDistFolder: boolean
|
|
115
|
+
distPath: string | null
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
static createPrivateBucket(options: {
|
|
119
|
+
slug: string
|
|
120
|
+
environment: EnvironmentType
|
|
121
|
+
enableVersioning?: boolean
|
|
122
|
+
retentionDays?: number
|
|
123
|
+
encryptionKeyArn?: string
|
|
124
|
+
}): { bucket: S3Bucket, logicalId: string };
|
|
125
|
+
static checkSourcePaths(options?: {
|
|
126
|
+
projectRoot?: string
|
|
127
|
+
paths?: {
|
|
128
|
+
web?: string
|
|
129
|
+
docs?: string
|
|
130
|
+
private?: string
|
|
131
|
+
}
|
|
132
|
+
}): {
|
|
133
|
+
web: { exists: boolean, path: string }
|
|
134
|
+
docs: { exists: boolean, path: string }
|
|
135
|
+
private: { exists: boolean, path: string }
|
|
136
|
+
};
|
|
137
|
+
static createDeploymentBuckets(options: {
|
|
138
|
+
slug: string
|
|
139
|
+
environment: EnvironmentType
|
|
140
|
+
domain?: string
|
|
141
|
+
projectRoot?: string
|
|
142
|
+
paths?: {
|
|
143
|
+
web?: string
|
|
144
|
+
docs?: string
|
|
145
|
+
private?: string
|
|
146
|
+
}
|
|
147
|
+
}): {
|
|
148
|
+
resources: Record<string, S3Bucket | S3BucketPolicy>
|
|
149
|
+
created: {
|
|
150
|
+
web: boolean
|
|
151
|
+
docs: boolean
|
|
152
|
+
private: boolean
|
|
153
|
+
}
|
|
154
|
+
sourcePaths: {
|
|
155
|
+
web: { exists: boolean, path: string }
|
|
156
|
+
docs: { exists: boolean, path: string }
|
|
157
|
+
private: { exists: boolean, path: string }
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import type { EnvironmentType } from '@stacksjs/ts-cloud-types';
|
|
2
|
+
import type { StepFunctionsStateMachine, IAMRole, } from '@stacksjs/ts-cloud-aws-types';
|
|
3
|
+
export declare interface StateMachineOptions {
|
|
4
|
+
slug: string
|
|
5
|
+
environment: EnvironmentType
|
|
6
|
+
stateMachineName?: string
|
|
7
|
+
type?: 'STANDARD' | 'EXPRESS'
|
|
8
|
+
definition: StateMachineDefinition
|
|
9
|
+
roleArn?: string
|
|
10
|
+
loggingConfiguration?: {
|
|
11
|
+
level: 'ALL' | 'ERROR' | 'FATAL' | 'OFF'
|
|
12
|
+
includeExecutionData?: boolean
|
|
13
|
+
destinations?: string[]
|
|
14
|
+
}
|
|
15
|
+
tracingConfiguration?: {
|
|
16
|
+
enabled: boolean
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export declare interface StateMachineDefinition {
|
|
20
|
+
Comment?: string
|
|
21
|
+
StartAt: string
|
|
22
|
+
States: Record<string, State>
|
|
23
|
+
TimeoutSeconds?: number
|
|
24
|
+
Version?: string
|
|
25
|
+
}
|
|
26
|
+
export declare interface BaseState {
|
|
27
|
+
Type: 'Task' | 'Pass' | 'Wait' | 'Choice' | 'Parallel' | 'Map' | 'Succeed' | 'Fail'
|
|
28
|
+
Comment?: string
|
|
29
|
+
End?: boolean
|
|
30
|
+
Next?: string
|
|
31
|
+
}
|
|
32
|
+
export declare interface TaskState extends BaseState {
|
|
33
|
+
Type: 'Task'
|
|
34
|
+
Resource: string
|
|
35
|
+
Parameters?: Record<string, unknown>
|
|
36
|
+
ResultPath?: string | null
|
|
37
|
+
OutputPath?: string
|
|
38
|
+
InputPath?: string
|
|
39
|
+
TimeoutSeconds?: number
|
|
40
|
+
HeartbeatSeconds?: number
|
|
41
|
+
Retry?: RetryConfig[]
|
|
42
|
+
Catch?: CatchConfig[]
|
|
43
|
+
}
|
|
44
|
+
export declare interface PassState extends BaseState {
|
|
45
|
+
Type: 'Pass'
|
|
46
|
+
Result?: unknown
|
|
47
|
+
ResultPath?: string | null
|
|
48
|
+
Parameters?: Record<string, unknown>
|
|
49
|
+
}
|
|
50
|
+
export declare interface WaitState extends BaseState {
|
|
51
|
+
Type: 'Wait'
|
|
52
|
+
Seconds?: number
|
|
53
|
+
Timestamp?: string
|
|
54
|
+
SecondsPath?: string
|
|
55
|
+
TimestampPath?: string
|
|
56
|
+
}
|
|
57
|
+
export declare interface ChoiceState extends BaseState {
|
|
58
|
+
Type: 'Choice'
|
|
59
|
+
Choices: ChoiceRule[]
|
|
60
|
+
Default?: string
|
|
61
|
+
}
|
|
62
|
+
export declare interface ChoiceRule {
|
|
63
|
+
Variable: string
|
|
64
|
+
StringEquals?: string
|
|
65
|
+
StringLessThan?: string
|
|
66
|
+
StringGreaterThan?: string
|
|
67
|
+
NumericEquals?: number
|
|
68
|
+
NumericLessThan?: number
|
|
69
|
+
NumericGreaterThan?: number
|
|
70
|
+
BooleanEquals?: boolean
|
|
71
|
+
TimestampEquals?: string
|
|
72
|
+
TimestampLessThan?: string
|
|
73
|
+
TimestampGreaterThan?: string
|
|
74
|
+
IsPresent?: boolean
|
|
75
|
+
IsNull?: boolean
|
|
76
|
+
IsNumeric?: boolean
|
|
77
|
+
IsString?: boolean
|
|
78
|
+
IsBoolean?: boolean
|
|
79
|
+
IsTimestamp?: boolean
|
|
80
|
+
Next: string
|
|
81
|
+
And?: ChoiceRule[]
|
|
82
|
+
Or?: ChoiceRule[]
|
|
83
|
+
Not?: ChoiceRule
|
|
84
|
+
}
|
|
85
|
+
export declare interface ParallelState extends BaseState {
|
|
86
|
+
Type: 'Parallel'
|
|
87
|
+
Branches: StateMachineDefinition[]
|
|
88
|
+
ResultPath?: string | null
|
|
89
|
+
Retry?: RetryConfig[]
|
|
90
|
+
Catch?: CatchConfig[]
|
|
91
|
+
}
|
|
92
|
+
export declare interface MapState extends BaseState {
|
|
93
|
+
Type: 'Map'
|
|
94
|
+
ItemsPath?: string
|
|
95
|
+
Iterator: StateMachineDefinition
|
|
96
|
+
MaxConcurrency?: number
|
|
97
|
+
ResultPath?: string | null
|
|
98
|
+
Retry?: RetryConfig[]
|
|
99
|
+
Catch?: CatchConfig[]
|
|
100
|
+
}
|
|
101
|
+
export declare interface SucceedState extends BaseState {
|
|
102
|
+
Type: 'Succeed'
|
|
103
|
+
}
|
|
104
|
+
export declare interface FailState extends BaseState {
|
|
105
|
+
Type: 'Fail'
|
|
106
|
+
Error?: string
|
|
107
|
+
Cause?: string
|
|
108
|
+
}
|
|
109
|
+
export declare interface RetryConfig {
|
|
110
|
+
ErrorEquals: string[]
|
|
111
|
+
IntervalSeconds?: number
|
|
112
|
+
MaxAttempts?: number
|
|
113
|
+
BackoffRate?: number
|
|
114
|
+
}
|
|
115
|
+
export declare interface CatchConfig {
|
|
116
|
+
ErrorEquals: string[]
|
|
117
|
+
Next: string
|
|
118
|
+
ResultPath?: string
|
|
119
|
+
}
|
|
120
|
+
export type State = | TaskState
|
|
121
|
+
| PassState
|
|
122
|
+
| WaitState
|
|
123
|
+
| ChoiceState
|
|
124
|
+
| ParallelState
|
|
125
|
+
| MapState
|
|
126
|
+
| SucceedState
|
|
127
|
+
| FailState
|
|
128
|
+
/**
|
|
129
|
+
* Workflow Module - Step Functions
|
|
130
|
+
* Provides clean API for orchestrating distributed applications and microservices
|
|
131
|
+
*/
|
|
132
|
+
export declare class Workflow {
|
|
133
|
+
static createStateMachine(options: StateMachineOptions): {
|
|
134
|
+
stateMachine: StepFunctionsStateMachine
|
|
135
|
+
logicalId: string
|
|
136
|
+
role?: IAMRole
|
|
137
|
+
roleLogicalId?: string
|
|
138
|
+
};
|
|
139
|
+
static createLambdaTask(functionArn: string, options?: {
|
|
140
|
+
parameters?: Record<string, unknown>
|
|
141
|
+
resultPath?: string | null
|
|
142
|
+
retry?: RetryConfig[]
|
|
143
|
+
catch?: CatchConfig[]
|
|
144
|
+
next?: string
|
|
145
|
+
end?: boolean
|
|
146
|
+
}): TaskState;
|
|
147
|
+
static createDynamoDBTask(action: 'GetItem' | 'PutItem' | 'UpdateItem' | 'DeleteItem', tableName: string, parameters: Record<string, unknown>, options?: {
|
|
148
|
+
resultPath?: string | null
|
|
149
|
+
retry?: RetryConfig[]
|
|
150
|
+
catch?: CatchConfig[]
|
|
151
|
+
next?: string
|
|
152
|
+
end?: boolean
|
|
153
|
+
}): TaskState;
|
|
154
|
+
static createSNSPublishTask(topicArn: string, message: Record<string, unknown>, options?: {
|
|
155
|
+
resultPath?: string | null
|
|
156
|
+
retry?: RetryConfig[]
|
|
157
|
+
catch?: CatchConfig[]
|
|
158
|
+
next?: string
|
|
159
|
+
end?: boolean
|
|
160
|
+
}): TaskState;
|
|
161
|
+
static createSQSSendMessageTask(queueUrl: string, messageBody: Record<string, unknown>, options?: {
|
|
162
|
+
resultPath?: string | null
|
|
163
|
+
retry?: RetryConfig[]
|
|
164
|
+
catch?: CatchConfig[]
|
|
165
|
+
next?: string
|
|
166
|
+
end?: boolean
|
|
167
|
+
}): TaskState;
|
|
168
|
+
static createPassState(options?: {
|
|
169
|
+
result?: unknown
|
|
170
|
+
resultPath?: string | null
|
|
171
|
+
parameters?: Record<string, unknown>
|
|
172
|
+
next?: string
|
|
173
|
+
end?: boolean
|
|
174
|
+
}): PassState;
|
|
175
|
+
static createWaitState(options: {
|
|
176
|
+
seconds?: number
|
|
177
|
+
timestamp?: string
|
|
178
|
+
secondsPath?: string
|
|
179
|
+
timestampPath?: string
|
|
180
|
+
next?: string
|
|
181
|
+
end?: boolean
|
|
182
|
+
}): WaitState;
|
|
183
|
+
static createChoiceState(choices: ChoiceRule[], defaultState?: string): ChoiceState;
|
|
184
|
+
static createParallelState(branches: StateMachineDefinition[], options?: {
|
|
185
|
+
resultPath?: string | null
|
|
186
|
+
retry?: RetryConfig[]
|
|
187
|
+
catch?: CatchConfig[]
|
|
188
|
+
next?: string
|
|
189
|
+
end?: boolean
|
|
190
|
+
}): ParallelState;
|
|
191
|
+
static createMapState(iterator: StateMachineDefinition, options?: {
|
|
192
|
+
itemsPath?: string
|
|
193
|
+
maxConcurrency?: number
|
|
194
|
+
resultPath?: string | null
|
|
195
|
+
retry?: RetryConfig[]
|
|
196
|
+
catch?: CatchConfig[]
|
|
197
|
+
next?: string
|
|
198
|
+
end?: boolean
|
|
199
|
+
}): MapState;
|
|
200
|
+
static createSucceedState(): SucceedState;
|
|
201
|
+
static createFailState(error?: string, cause?: string): FailState;
|
|
202
|
+
static readonly RetryPolicies: any;
|
|
203
|
+
static readonly CatchPolicies: any;
|
|
204
|
+
static readonly Patterns: any;
|
|
205
|
+
}
|