@ts-cloud/core 0.2.3 → 0.2.4
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 +1 -0
- package/dist/aws/cloudformation.d.ts +136 -0
- package/dist/aws/cloudfront.d.ts +45 -0
- package/dist/aws/credentials.d.ts +77 -0
- package/dist/aws/credentials.test.d.ts +4 -0
- package/dist/aws/index.d.ts +10 -0
- package/dist/aws/s3.d.ts +256 -0
- package/dist/aws/s3.test.d.ts +4 -0
- package/dist/aws/signature.d.ts +142 -0
- package/dist/aws/signature.test.d.ts +4 -0
- package/dist/backup/disaster-recovery.d.ts +140 -0
- package/dist/backup/disaster-recovery.test.d.ts +1 -0
- package/dist/backup/index.d.ts +8 -0
- package/dist/backup/manager.d.ts +172 -0
- package/dist/backup/manager.test.d.ts +1 -0
- package/dist/cicd/circleci.d.ts +50 -0
- package/dist/cicd/github-actions.d.ts +62 -0
- package/dist/cicd/gitlab-ci.d.ts +50 -0
- package/dist/cicd/index.d.ts +7 -0
- package/dist/cli/history.d.ts +137 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/progress.d.ts +193 -0
- package/dist/cli/repl.d.ts +148 -0
- package/dist/cli/suggestions.d.ts +74 -0
- package/dist/cli/table.d.ts +73 -0
- package/dist/cli/table.test.d.ts +1 -0
- package/dist/cloudformation/builder.d.ts +93 -0
- package/dist/cloudformation/builder.test.d.ts +4 -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 +68 -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 +39 -0
- package/dist/cloudformation/builders/network.d.ts +14 -0
- package/dist/cloudformation/builders/queue.d.ts +16 -0
- package/dist/cloudformation/builders/security.d.ts +31 -0
- package/dist/cloudformation/builders/storage.d.ts +36 -0
- package/dist/cloudformation/index.d.ts +10 -0
- package/dist/cloudformation/types.d.ts +200 -0
- package/dist/compliance/aws-config.d.ts +175 -0
- package/dist/compliance/cloudtrail.d.ts +132 -0
- package/dist/compliance/compliance.test.d.ts +1 -0
- package/dist/compliance/guardduty.d.ts +176 -0
- package/dist/compliance/index.d.ts +12 -0
- package/dist/compliance/security-hub.d.ts +178 -0
- package/dist/containers/build-optimization.d.ts +155 -0
- package/dist/containers/containers.test.d.ts +1 -0
- package/dist/containers/image-scanning.d.ts +144 -0
- package/dist/containers/index.d.ts +8 -0
- package/dist/containers/registry.d.ts +129 -0
- package/dist/containers/service-mesh.d.ts +254 -0
- package/dist/database/database.test.d.ts +1 -0
- package/dist/database/index.d.ts +8 -0
- package/dist/database/migrations.d.ts +153 -0
- package/dist/database/performance.d.ts +219 -0
- package/dist/database/replicas.d.ts +218 -0
- package/dist/database/users.d.ts +165 -0
- package/dist/dependency-graph.d.ts +37 -0
- package/dist/deployment/ab-testing.d.ts +165 -0
- package/dist/deployment/blue-green.d.ts +140 -0
- package/dist/deployment/canary.d.ts +165 -0
- package/dist/deployment/deployment.test.d.ts +1 -0
- package/dist/deployment/index.d.ts +12 -0
- package/dist/deployment/progressive.d.ts +50 -0
- package/dist/dns/dns.test.d.ts +1 -0
- package/dist/dns/dnssec.d.ts +120 -0
- package/dist/dns/index.d.ts +7 -0
- package/dist/dns/resolver.d.ts +216 -0
- package/dist/dns/routing.d.ts +277 -0
- package/dist/email/advanced/analytics.d.ts +107 -0
- package/dist/email/advanced/index.d.ts +10 -0
- package/dist/email/advanced/rules.d.ts +131 -0
- package/dist/email/advanced/scheduling.d.ts +81 -0
- package/dist/email/advanced/search.d.ts +91 -0
- package/dist/email/advanced/shared-mailboxes.d.ts +109 -0
- package/dist/email/advanced/templates.d.ts +95 -0
- package/dist/email/advanced/threading.d.ts +65 -0
- package/dist/email/analytics.d.ts +189 -0
- package/dist/email/bounce-handling.d.ts +171 -0
- package/dist/email/email.test.d.ts +1 -0
- package/dist/email/handlers/__tests__/inbound.test.d.ts +1 -0
- package/dist/email/handlers/__tests__/outbound.test.d.ts +1 -0
- package/dist/email/handlers/converter.d.ts +11 -0
- package/dist/email/handlers/feedback.d.ts +11 -0
- package/dist/email/handlers/inbound.d.ts +13 -0
- package/dist/email/handlers/outbound.d.ts +13 -0
- package/dist/email/index.d.ts +10 -0
- package/dist/email/reputation.d.ts +133 -0
- package/dist/email/templates.d.ts +124 -0
- package/dist/errors/index.d.ts +177 -0
- package/dist/errors/index.test.d.ts +4 -0
- package/dist/health-checks/index.d.ts +35 -0
- package/dist/index.d.ts +15 -256
- package/dist/index.js +228 -80
- package/dist/intrinsic-functions.d.ts +77 -0
- package/dist/lambda/concurrency.d.ts +146 -0
- package/dist/lambda/destinations.d.ts +141 -0
- package/dist/lambda/dlq.d.ts +160 -0
- package/dist/lambda/index.d.ts +10 -0
- package/dist/lambda/lambda.test.d.ts +1 -0
- package/dist/lambda/layers.d.ts +117 -0
- package/dist/lambda/versions.d.ts +145 -0
- package/dist/lambda/vpc.d.ts +164 -0
- package/dist/local/config.d.ts +44 -0
- package/dist/local/index.d.ts +5 -0
- package/dist/local/mock-aws.d.ts +69 -0
- package/dist/modules/ai.d.ts +108 -0
- package/dist/modules/api.d.ts +157 -0
- package/dist/modules/auth.d.ts +262 -0
- package/dist/modules/cache.d.ts +108 -0
- package/dist/modules/cdn.d.ts +305 -0
- package/dist/modules/communication.d.ts +117 -0
- package/dist/modules/compute.d.ts +1376 -0
- package/dist/modules/database.d.ts +144 -0
- package/dist/modules/deployment.d.ts +372 -0
- package/dist/modules/dns.d.ts +143 -0
- package/dist/modules/email.d.ts +314 -0
- package/dist/modules/filesystem.d.ts +132 -0
- package/dist/modules/index.d.ts +31 -0
- package/dist/modules/messaging.d.ts +210 -0
- package/dist/modules/monitoring.d.ts +574 -0
- package/dist/modules/network.d.ts +148 -0
- package/dist/modules/parameter-store.d.ts +143 -0
- package/dist/modules/permissions.d.ts +245 -0
- package/dist/modules/phone.d.ts +125 -0
- package/dist/modules/queue.d.ts +411 -0
- package/dist/modules/redirects.d.ts +140 -0
- package/dist/modules/registry.d.ts +189 -0
- package/dist/modules/search.d.ts +135 -0
- package/dist/modules/secrets.d.ts +149 -0
- package/dist/modules/security.d.ts +219 -0
- package/dist/modules/sms.d.ts +130 -0
- package/dist/modules/storage.d.ts +344 -0
- package/dist/modules/workflow.d.ts +288 -0
- package/dist/multi-account/config.d.ts +166 -0
- package/dist/multi-account/index.d.ts +6 -0
- package/dist/multi-account/manager.d.ts +181 -0
- package/dist/multi-region/cross-region.d.ts +204 -0
- package/dist/multi-region/index.d.ts +7 -0
- package/dist/multi-region/manager.d.ts +136 -0
- package/dist/multi-region/regions.d.ts +98 -0
- package/dist/network-security/index.d.ts +55 -0
- package/dist/observability/index.d.ts +8 -0
- package/dist/observability/logs.d.ts +213 -0
- package/dist/observability/metrics.d.ts +187 -0
- package/dist/observability/observability.test.d.ts +1 -0
- package/dist/observability/synthetics.d.ts +189 -0
- package/dist/observability/xray.d.ts +193 -0
- package/dist/phone/advanced/analytics.d.ts +83 -0
- package/dist/phone/advanced/callbacks.d.ts +67 -0
- package/dist/phone/advanced/index.d.ts +7 -0
- package/dist/phone/advanced/ivr-builder.d.ts +130 -0
- package/dist/phone/advanced/recording.d.ts +62 -0
- package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +1 -0
- package/dist/phone/handlers/incoming-call.d.ts +10 -0
- package/dist/phone/handlers/missed-call.d.ts +9 -0
- package/dist/phone/handlers/voicemail.d.ts +10 -0
- package/dist/phone/index.d.ts +5 -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 +4 -0
- package/dist/presets/fullstack-app.d.ts +12 -0
- package/dist/presets/index.d.ts +13 -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 +1 -0
- package/dist/preview/index.d.ts +10 -0
- package/dist/preview/manager.d.ts +101 -0
- package/dist/preview/manager.test.d.ts +1 -0
- package/dist/preview/notifications.d.ts +89 -0
- package/dist/preview/notifications.test.d.ts +1 -0
- package/dist/queue/batch-processing.d.ts +138 -0
- package/dist/queue/dlq-monitoring.d.ts +143 -0
- package/dist/queue/fifo.d.ts +131 -0
- package/dist/queue/index.d.ts +8 -0
- package/dist/queue/management.d.ts +162 -0
- package/dist/queue/queue.test.d.ts +1 -0
- package/dist/resource-mgmt/index.d.ts +44 -0
- package/dist/resource-naming.d.ts +26 -0
- package/dist/s3/index.d.ts +227 -0
- package/dist/schema/index.d.ts +12 -0
- package/dist/security/certificate-manager.d.ts +184 -0
- package/dist/security/index.d.ts +8 -0
- package/dist/security/scanning.d.ts +196 -0
- package/dist/security/secrets-manager.d.ts +204 -0
- package/dist/security/secrets-rotation.d.ts +167 -0
- package/dist/security/security.test.d.ts +1 -0
- package/dist/sms/advanced/ab-testing.d.ts +74 -0
- package/dist/sms/advanced/analytics.d.ts +75 -0
- package/dist/sms/advanced/campaigns.d.ts +96 -0
- package/dist/sms/advanced/chatbot.d.ts +67 -0
- package/dist/sms/advanced/index.d.ts +9 -0
- package/dist/sms/advanced/link-tracking.d.ts +60 -0
- package/dist/sms/advanced/mms.d.ts +60 -0
- package/dist/sms/handlers/__tests__/send.test.d.ts +1 -0
- package/dist/sms/handlers/delivery-status.d.ts +10 -0
- package/dist/sms/handlers/receive.d.ts +10 -0
- package/dist/sms/handlers/send.d.ts +10 -0
- package/dist/sms/index.d.ts +5 -0
- package/dist/stack-diff.d.ts +38 -0
- package/dist/static-site/index.d.ts +49 -0
- package/dist/template-builder.d.ts +42 -0
- package/dist/template-validator.d.ts +28 -0
- package/dist/types.d.ts +2514 -0
- package/dist/utils/cache.d.ts +117 -0
- package/dist/utils/diff.d.ts +52 -0
- package/dist/utils/hash.d.ts +73 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/parallel.d.ts +78 -0
- package/dist/validators/credentials.d.ts +30 -0
- package/dist/validators/credentials.test.d.ts +4 -0
- package/dist/validators/quotas.d.ts +64 -0
- package/dist/validators/quotas.test.d.ts +4 -0
- package/package.json +2 -2
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-Region Resource Management
|
|
3
|
+
* Handles references and dependencies between regions
|
|
4
|
+
*/
|
|
5
|
+
export interface CrossRegionReference {
|
|
6
|
+
sourceRegion: string;
|
|
7
|
+
targetRegion: string;
|
|
8
|
+
resourceType: string;
|
|
9
|
+
resourceId: string;
|
|
10
|
+
value: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CrossRegionExport {
|
|
13
|
+
region: string;
|
|
14
|
+
exportName: string;
|
|
15
|
+
value: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Cross-region reference manager
|
|
20
|
+
*/
|
|
21
|
+
export declare class CrossRegionReferenceManager {
|
|
22
|
+
private references;
|
|
23
|
+
private exports;
|
|
24
|
+
/**
|
|
25
|
+
* Register a cross-region export
|
|
26
|
+
*/
|
|
27
|
+
addExport(export_: CrossRegionExport): void;
|
|
28
|
+
/**
|
|
29
|
+
* Get export value from another region
|
|
30
|
+
*/
|
|
31
|
+
getExport(region: string, exportName: string): string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Create cross-region reference
|
|
34
|
+
*/
|
|
35
|
+
createReference(sourceRegion: string, targetRegion: string, resourceType: string, resourceId: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve cross-region reference
|
|
38
|
+
*/
|
|
39
|
+
resolveReference(targetRegion: string, parameterName: string): Promise<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Get all references for a region
|
|
42
|
+
*/
|
|
43
|
+
getReferencesForRegion(region: string): CrossRegionReference[];
|
|
44
|
+
/**
|
|
45
|
+
* Clear all references
|
|
46
|
+
*/
|
|
47
|
+
clear(): void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Global resources that exist in one region but are accessible globally
|
|
51
|
+
*/
|
|
52
|
+
export interface GlobalResource {
|
|
53
|
+
type: 'cloudfront' | 'route53' | 'waf' | 'iam' | 's3-website';
|
|
54
|
+
id: string;
|
|
55
|
+
region: string;
|
|
56
|
+
arn: string;
|
|
57
|
+
endpoint?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Global resource manager
|
|
61
|
+
*/
|
|
62
|
+
export declare class GlobalResourceManager {
|
|
63
|
+
private resources;
|
|
64
|
+
/**
|
|
65
|
+
* Register a global resource
|
|
66
|
+
*/
|
|
67
|
+
register(resource: GlobalResource): void;
|
|
68
|
+
/**
|
|
69
|
+
* Get global resource
|
|
70
|
+
*/
|
|
71
|
+
get(id: string): GlobalResource | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Get global resources by type
|
|
74
|
+
*/
|
|
75
|
+
getByType(type: GlobalResource['type']): GlobalResource[];
|
|
76
|
+
/**
|
|
77
|
+
* Get CloudFront distributions
|
|
78
|
+
*/
|
|
79
|
+
getCloudFrontDistributions(): GlobalResource[];
|
|
80
|
+
/**
|
|
81
|
+
* Get Route53 hosted zones
|
|
82
|
+
*/
|
|
83
|
+
getRoute53HostedZones(): GlobalResource[];
|
|
84
|
+
/**
|
|
85
|
+
* Get WAF web ACLs
|
|
86
|
+
*/
|
|
87
|
+
getWAFWebACLs(): GlobalResource[];
|
|
88
|
+
/**
|
|
89
|
+
* Remove global resource
|
|
90
|
+
*/
|
|
91
|
+
remove(id: string): void;
|
|
92
|
+
/**
|
|
93
|
+
* Clear all global resources
|
|
94
|
+
*/
|
|
95
|
+
clear(): void;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Region pairing for replication and failover
|
|
99
|
+
*/
|
|
100
|
+
export interface RegionPair {
|
|
101
|
+
primary: string;
|
|
102
|
+
secondary: string;
|
|
103
|
+
replicationConfig?: {
|
|
104
|
+
s3: boolean;
|
|
105
|
+
dynamodb: boolean;
|
|
106
|
+
rds: boolean;
|
|
107
|
+
};
|
|
108
|
+
failoverConfig?: {
|
|
109
|
+
automatic: boolean;
|
|
110
|
+
healthCheckInterval: number;
|
|
111
|
+
failoverThreshold: number;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Region pair manager
|
|
116
|
+
*/
|
|
117
|
+
export declare class RegionPairManager {
|
|
118
|
+
private pairs;
|
|
119
|
+
/**
|
|
120
|
+
* Add region pair
|
|
121
|
+
*/
|
|
122
|
+
addPair(pair: RegionPair): void;
|
|
123
|
+
/**
|
|
124
|
+
* Get paired region
|
|
125
|
+
*/
|
|
126
|
+
getPairedRegion(region: string): string | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Get all pairs
|
|
129
|
+
*/
|
|
130
|
+
getAllPairs(): RegionPair[];
|
|
131
|
+
/**
|
|
132
|
+
* Get pairs with replication enabled
|
|
133
|
+
*/
|
|
134
|
+
getReplicatedPairs(): RegionPair[];
|
|
135
|
+
/**
|
|
136
|
+
* Get pairs with failover enabled
|
|
137
|
+
*/
|
|
138
|
+
getFailoverPairs(): RegionPair[];
|
|
139
|
+
/**
|
|
140
|
+
* Check if regions are paired
|
|
141
|
+
*/
|
|
142
|
+
arePaired(region1: string, region2: string): boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Clear all pairs
|
|
145
|
+
*/
|
|
146
|
+
clear(): void;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Cross-region stack dependencies
|
|
150
|
+
*/
|
|
151
|
+
export interface StackDependency {
|
|
152
|
+
dependentStack: string;
|
|
153
|
+
dependentRegion: string;
|
|
154
|
+
dependsOnStack: string;
|
|
155
|
+
dependsOnRegion: string;
|
|
156
|
+
outputKey: string;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Stack dependency manager
|
|
160
|
+
*/
|
|
161
|
+
export declare class StackDependencyManager {
|
|
162
|
+
private dependencies;
|
|
163
|
+
/**
|
|
164
|
+
* Add stack dependency
|
|
165
|
+
*/
|
|
166
|
+
addDependency(dependency: StackDependency): void;
|
|
167
|
+
/**
|
|
168
|
+
* Get dependencies for a stack
|
|
169
|
+
*/
|
|
170
|
+
getDependencies(stackName: string, region: string): StackDependency[];
|
|
171
|
+
/**
|
|
172
|
+
* Get dependents of a stack
|
|
173
|
+
*/
|
|
174
|
+
getDependents(stackName: string, region: string): StackDependency[];
|
|
175
|
+
/**
|
|
176
|
+
* Check if stack has dependencies
|
|
177
|
+
*/
|
|
178
|
+
hasDependencies(stackName: string, region: string): boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Get deployment order
|
|
181
|
+
*/
|
|
182
|
+
getDeploymentOrder(stacks: Array<{
|
|
183
|
+
name: string;
|
|
184
|
+
region: string;
|
|
185
|
+
}>): Array<{
|
|
186
|
+
name: string;
|
|
187
|
+
region: string;
|
|
188
|
+
}>;
|
|
189
|
+
/**
|
|
190
|
+
* Detect circular dependencies
|
|
191
|
+
*/
|
|
192
|
+
detectCircularDependencies(): boolean;
|
|
193
|
+
/**
|
|
194
|
+
* Clear all dependencies
|
|
195
|
+
*/
|
|
196
|
+
clear(): void;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Global instances
|
|
200
|
+
*/
|
|
201
|
+
export declare const crossRegionReferenceManager: CrossRegionReferenceManager;
|
|
202
|
+
export declare const globalResourceManager: GlobalResourceManager;
|
|
203
|
+
export declare const regionPairManager: RegionPairManager;
|
|
204
|
+
export declare const stackDependencyManager: StackDependencyManager;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Region Deployment Manager
|
|
3
|
+
* Deploys infrastructure across multiple AWS regions
|
|
4
|
+
*/
|
|
5
|
+
import type { CloudConfig } from '../types';
|
|
6
|
+
export interface Region {
|
|
7
|
+
code: string;
|
|
8
|
+
name: string;
|
|
9
|
+
isPrimary?: boolean;
|
|
10
|
+
weight?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface MultiRegionConfig {
|
|
13
|
+
regions: Region[];
|
|
14
|
+
globalResources?: {
|
|
15
|
+
route53?: boolean;
|
|
16
|
+
cloudfront?: boolean;
|
|
17
|
+
waf?: boolean;
|
|
18
|
+
};
|
|
19
|
+
replication?: {
|
|
20
|
+
s3?: boolean;
|
|
21
|
+
dynamodb?: boolean;
|
|
22
|
+
secrets?: boolean;
|
|
23
|
+
};
|
|
24
|
+
failover?: {
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
healthCheckPath?: string;
|
|
27
|
+
failoverThreshold?: number;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface RegionDeployment {
|
|
31
|
+
region: string;
|
|
32
|
+
stackName: string;
|
|
33
|
+
status: 'pending' | 'deploying' | 'deployed' | 'failed' | 'rolling-back';
|
|
34
|
+
outputs?: Record<string, string>;
|
|
35
|
+
error?: string;
|
|
36
|
+
startTime?: Date;
|
|
37
|
+
endTime?: Date;
|
|
38
|
+
}
|
|
39
|
+
export interface MultiRegionDeployment {
|
|
40
|
+
id: string;
|
|
41
|
+
regions: RegionDeployment[];
|
|
42
|
+
globalResources?: Record<string, any>;
|
|
43
|
+
status: 'pending' | 'deploying' | 'deployed' | 'failed' | 'rolling-back';
|
|
44
|
+
startTime: Date;
|
|
45
|
+
endTime?: Date;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Multi-region deployment manager
|
|
49
|
+
*/
|
|
50
|
+
export declare class MultiRegionManager {
|
|
51
|
+
private deployments;
|
|
52
|
+
/**
|
|
53
|
+
* Deploy to multiple regions
|
|
54
|
+
*/
|
|
55
|
+
deploy(config: CloudConfig, multiRegionConfig: MultiRegionConfig): Promise<MultiRegionDeployment>;
|
|
56
|
+
/**
|
|
57
|
+
* Deploy to a single region
|
|
58
|
+
*/
|
|
59
|
+
private deployToRegion;
|
|
60
|
+
/**
|
|
61
|
+
* Deploy global resources (Route53, CloudFront, WAF)
|
|
62
|
+
*/
|
|
63
|
+
private deployGlobalResources;
|
|
64
|
+
/**
|
|
65
|
+
* Deploy Route53 for multi-region routing
|
|
66
|
+
*/
|
|
67
|
+
private deployRoute53;
|
|
68
|
+
/**
|
|
69
|
+
* Deploy CloudFront distribution
|
|
70
|
+
*/
|
|
71
|
+
private deployCloudFront;
|
|
72
|
+
/**
|
|
73
|
+
* Deploy WAF
|
|
74
|
+
*/
|
|
75
|
+
private deployWAF;
|
|
76
|
+
/**
|
|
77
|
+
* Set up cross-region replication
|
|
78
|
+
*/
|
|
79
|
+
private setupReplication;
|
|
80
|
+
/**
|
|
81
|
+
* Set up S3 bucket replication
|
|
82
|
+
*/
|
|
83
|
+
private setupS3Replication;
|
|
84
|
+
/**
|
|
85
|
+
* Set up DynamoDB global tables
|
|
86
|
+
*/
|
|
87
|
+
private setupDynamoDBReplication;
|
|
88
|
+
/**
|
|
89
|
+
* Set up Secrets Manager replication
|
|
90
|
+
*/
|
|
91
|
+
private setupSecretsReplication;
|
|
92
|
+
/**
|
|
93
|
+
* Set up failover configuration
|
|
94
|
+
*/
|
|
95
|
+
private setupFailover;
|
|
96
|
+
/**
|
|
97
|
+
* Destroy multi-region deployment
|
|
98
|
+
*/
|
|
99
|
+
destroy(deploymentId: string): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Destroy global resources
|
|
102
|
+
*/
|
|
103
|
+
private destroyGlobalResources;
|
|
104
|
+
/**
|
|
105
|
+
* Destroy stack in a single region
|
|
106
|
+
*/
|
|
107
|
+
private destroyRegionStack;
|
|
108
|
+
/**
|
|
109
|
+
* Get deployment status
|
|
110
|
+
*/
|
|
111
|
+
getDeployment(deploymentId: string): MultiRegionDeployment | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* List all deployments
|
|
114
|
+
*/
|
|
115
|
+
listDeployments(): MultiRegionDeployment[];
|
|
116
|
+
/**
|
|
117
|
+
* Get stack name for a region
|
|
118
|
+
*/
|
|
119
|
+
private getStackName;
|
|
120
|
+
/**
|
|
121
|
+
* Create region-specific config
|
|
122
|
+
*/
|
|
123
|
+
private createRegionConfig;
|
|
124
|
+
/**
|
|
125
|
+
* Deploy stack (placeholder)
|
|
126
|
+
*/
|
|
127
|
+
private deployStack;
|
|
128
|
+
/**
|
|
129
|
+
* Generate deployment ID
|
|
130
|
+
*/
|
|
131
|
+
private generateDeploymentId;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Global multi-region manager instance
|
|
135
|
+
*/
|
|
136
|
+
export declare const multiRegionManager: MultiRegionManager;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Region utilities
|
|
3
|
+
* Region selection, validation, and configuration
|
|
4
|
+
*/
|
|
5
|
+
export interface RegionInfo {
|
|
6
|
+
code: string;
|
|
7
|
+
name: string;
|
|
8
|
+
location: string;
|
|
9
|
+
launchYear: number;
|
|
10
|
+
availabilityZones: number;
|
|
11
|
+
localZones?: number;
|
|
12
|
+
wavelengthZones?: number;
|
|
13
|
+
services: {
|
|
14
|
+
compute: boolean;
|
|
15
|
+
storage: boolean;
|
|
16
|
+
database: boolean;
|
|
17
|
+
networking: boolean;
|
|
18
|
+
ml: boolean;
|
|
19
|
+
analytics: boolean;
|
|
20
|
+
};
|
|
21
|
+
pricing: {
|
|
22
|
+
tier: 'standard' | 'reduced' | 'premium';
|
|
23
|
+
multiplier: number;
|
|
24
|
+
};
|
|
25
|
+
compliance: string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* AWS Region database
|
|
29
|
+
*/
|
|
30
|
+
export declare const AWS_REGIONS: RegionInfo[];
|
|
31
|
+
/**
|
|
32
|
+
* Get region by code
|
|
33
|
+
*/
|
|
34
|
+
export declare function getRegion(code: string): RegionInfo | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Get all regions
|
|
37
|
+
*/
|
|
38
|
+
export declare function getAllRegions(): RegionInfo[];
|
|
39
|
+
/**
|
|
40
|
+
* Get regions by location
|
|
41
|
+
*/
|
|
42
|
+
export declare function getRegionsByLocation(location: string): RegionInfo[];
|
|
43
|
+
/**
|
|
44
|
+
* Get regions with specific compliance
|
|
45
|
+
*/
|
|
46
|
+
export declare function getRegionsByCompliance(compliance: string): RegionInfo[];
|
|
47
|
+
/**
|
|
48
|
+
* Get regions by pricing tier
|
|
49
|
+
*/
|
|
50
|
+
export declare function getRegionsByPricingTier(tier: 'standard' | 'reduced' | 'premium'): RegionInfo[];
|
|
51
|
+
/**
|
|
52
|
+
* Validate region code
|
|
53
|
+
*/
|
|
54
|
+
export declare function isValidRegion(code: string): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Get closest region to user location
|
|
57
|
+
*/
|
|
58
|
+
export declare function getClosestRegion(userLocation: {
|
|
59
|
+
continent?: string;
|
|
60
|
+
country?: string;
|
|
61
|
+
}): RegionInfo;
|
|
62
|
+
/**
|
|
63
|
+
* Suggest regions based on requirements
|
|
64
|
+
*/
|
|
65
|
+
export interface RegionRequirements {
|
|
66
|
+
compliance?: string[];
|
|
67
|
+
pricingSensitive?: boolean;
|
|
68
|
+
lowLatency?: boolean;
|
|
69
|
+
userLocations?: string[];
|
|
70
|
+
requiredServices?: Array<keyof RegionInfo['services']>;
|
|
71
|
+
}
|
|
72
|
+
export declare function suggestRegions(requirements: RegionRequirements): RegionInfo[];
|
|
73
|
+
/**
|
|
74
|
+
* Calculate region pairs for failover
|
|
75
|
+
*/
|
|
76
|
+
export interface RegionPairSuggestion {
|
|
77
|
+
primary: RegionInfo;
|
|
78
|
+
secondary: RegionInfo;
|
|
79
|
+
distance: number;
|
|
80
|
+
sameContinent: boolean;
|
|
81
|
+
}
|
|
82
|
+
export declare function suggestRegionPairs(primaryRegion: string): RegionPairSuggestion[];
|
|
83
|
+
/**
|
|
84
|
+
* Format region for display
|
|
85
|
+
*/
|
|
86
|
+
export declare function formatRegion(region: RegionInfo): string;
|
|
87
|
+
/**
|
|
88
|
+
* Format region list for display
|
|
89
|
+
*/
|
|
90
|
+
export declare function formatRegionList(regions: RegionInfo[]): string;
|
|
91
|
+
/**
|
|
92
|
+
* Get region statistics
|
|
93
|
+
*/
|
|
94
|
+
export declare function getRegionStats(): {
|
|
95
|
+
total: number;
|
|
96
|
+
byContinent: Record<string, number>;
|
|
97
|
+
byPricingTier: Record<string, number>;
|
|
98
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network Security - WAF, Shield, security groups, NACLs
|
|
3
|
+
*/
|
|
4
|
+
export interface WAFRule {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
priority: number;
|
|
8
|
+
action: 'allow' | 'block' | 'count';
|
|
9
|
+
conditions: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface ShieldProtection {
|
|
12
|
+
id: string;
|
|
13
|
+
resourceArn: string;
|
|
14
|
+
protectionType: 'standard' | 'advanced';
|
|
15
|
+
}
|
|
16
|
+
export interface SecurityGroup {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
vpcId: string;
|
|
20
|
+
rules: Array<{
|
|
21
|
+
protocol: string;
|
|
22
|
+
port: number;
|
|
23
|
+
source: string;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
export interface NACL {
|
|
27
|
+
id: string;
|
|
28
|
+
vpcId: string;
|
|
29
|
+
rules: Array<{
|
|
30
|
+
ruleNumber: number;
|
|
31
|
+
protocol: string;
|
|
32
|
+
action: 'allow' | 'deny';
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
export declare class NetworkSecurityManager {
|
|
36
|
+
private wafRules;
|
|
37
|
+
private shieldProtections;
|
|
38
|
+
private securityGroups;
|
|
39
|
+
private nacls;
|
|
40
|
+
private counter;
|
|
41
|
+
createWAFRule(name: string, priority: number, action: 'allow' | 'block' | 'count', conditions: string[]): WAFRule;
|
|
42
|
+
enableShield(resourceArn: string, protectionType?: 'standard' | 'advanced'): ShieldProtection;
|
|
43
|
+
createSecurityGroup(name: string, vpcId: string, rules: Array<{
|
|
44
|
+
protocol: string;
|
|
45
|
+
port: number;
|
|
46
|
+
source: string;
|
|
47
|
+
}>): SecurityGroup;
|
|
48
|
+
createNACL(vpcId: string, rules: Array<{
|
|
49
|
+
ruleNumber: number;
|
|
50
|
+
protocol: string;
|
|
51
|
+
action: 'allow' | 'deny';
|
|
52
|
+
}>): NACL;
|
|
53
|
+
clear(): void;
|
|
54
|
+
}
|
|
55
|
+
export declare const networkSecurityManager: NetworkSecurityManager;
|