@stacksjs/ts-cloud-core 0.1.3 → 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/README.md +98 -13
- 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/{src/aws/index.ts → dist/aws/index.d.ts} +37 -51
- 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/{src/backup/index.ts → dist/backup/index.d.ts} +10 -20
- 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/{src/compliance/index.ts → dist/compliance/index.d.ts} +20 -36
- 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/{src/deployment/index.ts → dist/deployment/index.d.ts} +20 -36
- 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/{src/email/handlers/converter.ts → dist/email/handlers/converter.d.ts} +3 -5
- package/{src/email/handlers/feedback.ts → dist/email/handlers/feedback.d.ts} +3 -5
- package/{src/email/handlers/inbound.ts → dist/email/handlers/inbound.d.ts} +3 -5
- package/{src/email/handlers/outbound.ts → dist/email/handlers/outbound.d.ts} +3 -5
- 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/{src/phone/handlers/incoming-call.ts → dist/phone/handlers/incoming-call.d.ts} +3 -5
- package/{src/phone/handlers/missed-call.ts → dist/phone/handlers/missed-call.d.ts} +3 -5
- package/{src/phone/handlers/voicemail.ts → dist/phone/handlers/voicemail.d.ts} +3 -5
- 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/{src/presets/extend.ts → dist/presets/extend.d.ts} +11 -114
- 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/{src/preview/index.ts → dist/preview/index.d.ts} +16 -26
- 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/{src/sms/handlers/delivery-status.ts → dist/sms/handlers/delivery-status.d.ts} +3 -5
- package/{src/sms/handlers/receive.ts → dist/sms/handlers/receive.d.ts} +3 -5
- package/{src/sms/handlers/send.ts → dist/sms/handlers/send.d.ts} +3 -5
- 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 +13 -4
- package/src/advanced-features.test.ts +0 -465
- package/src/aws/cloudformation.ts +0 -421
- package/src/aws/cloudfront.ts +0 -158
- package/src/aws/credentials.test.ts +0 -132
- package/src/aws/credentials.ts +0 -545
- package/src/aws/s3.test.ts +0 -188
- package/src/aws/s3.ts +0 -1088
- package/src/aws/signature.test.ts +0 -670
- package/src/aws/signature.ts +0 -1155
- package/src/backup/disaster-recovery.test.ts +0 -726
- package/src/backup/disaster-recovery.ts +0 -500
- package/src/backup/manager.test.ts +0 -498
- package/src/backup/manager.ts +0 -432
- package/src/cicd/circleci.ts +0 -430
- package/src/cicd/github-actions.ts +0 -424
- package/src/cicd/gitlab-ci.ts +0 -255
- package/src/cicd/index.ts +0 -8
- package/src/cli/history.ts +0 -396
- package/src/cli/index.ts +0 -10
- package/src/cli/progress.ts +0 -458
- package/src/cli/repl.ts +0 -454
- package/src/cli/suggestions.ts +0 -327
- package/src/cli/table.test.ts +0 -319
- package/src/cli/table.ts +0 -332
- package/src/cloudformation/builder.test.ts +0 -327
- package/src/cloudformation/builder.ts +0 -378
- package/src/cloudformation/builders/api-gateway.ts +0 -449
- package/src/cloudformation/builders/cache.ts +0 -334
- package/src/cloudformation/builders/cdn.ts +0 -278
- package/src/cloudformation/builders/compute.ts +0 -485
- package/src/cloudformation/builders/database.ts +0 -392
- package/src/cloudformation/builders/functions.ts +0 -343
- package/src/cloudformation/builders/messaging.ts +0 -140
- package/src/cloudformation/builders/monitoring.ts +0 -300
- package/src/cloudformation/builders/network.ts +0 -264
- package/src/cloudformation/builders/queue.ts +0 -147
- package/src/cloudformation/builders/security.ts +0 -399
- package/src/cloudformation/builders/storage.ts +0 -285
- package/src/cloudformation/index.ts +0 -30
- package/src/cloudformation/types.ts +0 -173
- package/src/compliance/aws-config.ts +0 -543
- package/src/compliance/cloudtrail.ts +0 -376
- package/src/compliance/compliance.test.ts +0 -423
- package/src/compliance/guardduty.ts +0 -446
- package/src/compliance/security-hub.ts +0 -456
- package/src/containers/build-optimization.ts +0 -416
- package/src/containers/containers.test.ts +0 -508
- package/src/containers/image-scanning.ts +0 -360
- package/src/containers/index.ts +0 -9
- package/src/containers/registry.ts +0 -293
- package/src/containers/service-mesh.ts +0 -520
- package/src/database/database.test.ts +0 -762
- package/src/database/index.ts +0 -9
- package/src/database/migrations.ts +0 -444
- package/src/database/performance.ts +0 -528
- package/src/database/replicas.ts +0 -534
- package/src/database/users.ts +0 -494
- package/src/dependency-graph.ts +0 -143
- package/src/deployment/ab-testing.ts +0 -582
- package/src/deployment/blue-green.ts +0 -452
- package/src/deployment/canary.ts +0 -500
- package/src/deployment/deployment.test.ts +0 -526
- package/src/deployment/progressive.ts +0 -62
- package/src/dns/dns.test.ts +0 -641
- package/src/dns/dnssec.ts +0 -315
- package/src/dns/index.ts +0 -8
- package/src/dns/resolver.ts +0 -496
- package/src/dns/routing.ts +0 -593
- package/src/email/advanced/analytics.ts +0 -445
- package/src/email/advanced/index.ts +0 -11
- package/src/email/advanced/rules.ts +0 -465
- package/src/email/advanced/scheduling.ts +0 -352
- package/src/email/advanced/search.ts +0 -412
- package/src/email/advanced/shared-mailboxes.ts +0 -404
- package/src/email/advanced/templates.ts +0 -455
- package/src/email/advanced/threading.ts +0 -281
- package/src/email/analytics.ts +0 -467
- package/src/email/bounce-handling.ts +0 -425
- package/src/email/email.test.ts +0 -431
- package/src/email/handlers/__tests__/inbound.test.ts +0 -38
- package/src/email/handlers/__tests__/outbound.test.ts +0 -37
- package/src/email/index.ts +0 -15
- package/src/email/reputation.ts +0 -303
- package/src/email/templates.ts +0 -352
- package/src/errors/index.test.ts +0 -434
- package/src/errors/index.ts +0 -416
- package/src/health-checks/index.ts +0 -40
- package/src/index.ts +0 -360
- package/src/intrinsic-functions.ts +0 -118
- package/src/lambda/concurrency.ts +0 -330
- package/src/lambda/destinations.ts +0 -345
- package/src/lambda/dlq.ts +0 -425
- package/src/lambda/index.ts +0 -11
- package/src/lambda/lambda.test.ts +0 -840
- package/src/lambda/layers.ts +0 -263
- package/src/lambda/versions.ts +0 -376
- package/src/lambda/vpc.ts +0 -399
- package/src/local/config.ts +0 -114
- package/src/local/index.ts +0 -6
- package/src/local/mock-aws.ts +0 -351
- package/src/modules/ai.ts +0 -340
- package/src/modules/api.ts +0 -478
- package/src/modules/auth.ts +0 -805
- package/src/modules/cache.ts +0 -417
- package/src/modules/cdn.ts +0 -1062
- package/src/modules/communication.ts +0 -1094
- package/src/modules/compute.ts +0 -3348
- package/src/modules/database.ts +0 -554
- package/src/modules/deployment.ts +0 -1079
- package/src/modules/dns.ts +0 -337
- package/src/modules/email.ts +0 -1538
- package/src/modules/filesystem.ts +0 -515
- package/src/modules/index.ts +0 -32
- package/src/modules/messaging.ts +0 -486
- package/src/modules/monitoring.ts +0 -2086
- package/src/modules/network.ts +0 -664
- package/src/modules/parameter-store.ts +0 -325
- package/src/modules/permissions.ts +0 -1081
- package/src/modules/phone.ts +0 -494
- package/src/modules/queue.ts +0 -1260
- package/src/modules/redirects.ts +0 -464
- package/src/modules/registry.ts +0 -699
- package/src/modules/search.ts +0 -401
- package/src/modules/secrets.ts +0 -416
- package/src/modules/security.ts +0 -731
- package/src/modules/sms.ts +0 -389
- package/src/modules/storage.ts +0 -1120
- package/src/modules/workflow.ts +0 -680
- package/src/multi-account/config.ts +0 -521
- package/src/multi-account/index.ts +0 -7
- package/src/multi-account/manager.ts +0 -427
- package/src/multi-region/cross-region.ts +0 -410
- package/src/multi-region/index.ts +0 -8
- package/src/multi-region/manager.ts +0 -483
- package/src/multi-region/regions.ts +0 -435
- package/src/network-security/index.ts +0 -48
- package/src/observability/index.ts +0 -9
- package/src/observability/logs.ts +0 -522
- package/src/observability/metrics.ts +0 -460
- package/src/observability/observability.test.ts +0 -782
- package/src/observability/synthetics.ts +0 -568
- package/src/observability/xray.ts +0 -358
- package/src/phone/advanced/analytics.ts +0 -349
- package/src/phone/advanced/callbacks.ts +0 -428
- package/src/phone/advanced/index.ts +0 -8
- package/src/phone/advanced/ivr-builder.ts +0 -504
- package/src/phone/advanced/recording.ts +0 -310
- package/src/phone/handlers/__tests__/incoming-call.test.ts +0 -40
- package/src/phone/index.ts +0 -9
- package/src/presets/api-backend.ts +0 -134
- package/src/presets/data-pipeline.ts +0 -204
- package/src/presets/extend.test.ts +0 -295
- package/src/presets/fullstack-app.ts +0 -144
- package/src/presets/index.ts +0 -27
- package/src/presets/jamstack.ts +0 -135
- package/src/presets/microservices.ts +0 -167
- package/src/presets/ml-api.ts +0 -208
- package/src/presets/nodejs-server.ts +0 -104
- package/src/presets/nodejs-serverless.ts +0 -114
- package/src/presets/realtime-app.ts +0 -184
- package/src/presets/static-site.ts +0 -64
- package/src/presets/traditional-web-app.ts +0 -339
- package/src/presets/wordpress.ts +0 -138
- package/src/preview/github.test.ts +0 -249
- package/src/preview/github.ts +0 -297
- package/src/preview/manager.test.ts +0 -440
- package/src/preview/manager.ts +0 -326
- package/src/preview/notifications.test.ts +0 -582
- package/src/preview/notifications.ts +0 -341
- package/src/queue/batch-processing.ts +0 -402
- package/src/queue/dlq-monitoring.ts +0 -402
- package/src/queue/fifo.ts +0 -342
- package/src/queue/index.ts +0 -9
- package/src/queue/management.ts +0 -428
- package/src/queue/queue.test.ts +0 -429
- package/src/resource-mgmt/index.ts +0 -39
- package/src/resource-naming.ts +0 -62
- package/src/s3/index.ts +0 -523
- package/src/schema/cloud-config.schema.json +0 -554
- package/src/schema/index.ts +0 -68
- package/src/security/certificate-manager.ts +0 -492
- package/src/security/index.ts +0 -9
- package/src/security/scanning.ts +0 -545
- package/src/security/secrets-manager.ts +0 -476
- package/src/security/secrets-rotation.ts +0 -456
- package/src/security/security.test.ts +0 -738
- package/src/sms/advanced/ab-testing.ts +0 -389
- package/src/sms/advanced/analytics.ts +0 -336
- package/src/sms/advanced/campaigns.ts +0 -523
- package/src/sms/advanced/chatbot.ts +0 -224
- package/src/sms/advanced/index.ts +0 -10
- package/src/sms/advanced/link-tracking.ts +0 -248
- package/src/sms/advanced/mms.ts +0 -308
- package/src/sms/handlers/__tests__/send.test.ts +0 -40
- package/src/sms/index.ts +0 -9
- package/src/stack-diff.ts +0 -389
- package/src/static-site/index.ts +0 -85
- package/src/template-builder.ts +0 -110
- package/src/template-validator.ts +0 -574
- package/src/utils/cache.ts +0 -291
- package/src/utils/diff.ts +0 -269
- package/src/utils/hash.ts +0 -227
- package/src/utils/index.ts +0 -8
- package/src/utils/parallel.ts +0 -294
- package/src/validators/credentials.test.ts +0 -274
- package/src/validators/credentials.ts +0 -233
- package/src/validators/quotas.test.ts +0 -434
- package/src/validators/quotas.ts +0 -217
- package/test/ai.test.ts +0 -327
- package/test/api.test.ts +0 -511
- package/test/auth.test.ts +0 -632
- package/test/cache.test.ts +0 -406
- package/test/cdn.test.ts +0 -247
- package/test/compute.test.ts +0 -861
- package/test/database.test.ts +0 -523
- package/test/deployment.test.ts +0 -499
- package/test/dns.test.ts +0 -270
- package/test/email.test.ts +0 -439
- package/test/filesystem.test.ts +0 -382
- package/test/integration.test.ts +0 -350
- package/test/messaging.test.ts +0 -514
- package/test/monitoring.test.ts +0 -634
- package/test/network.test.ts +0 -425
- package/test/permissions.test.ts +0 -488
- package/test/queue.test.ts +0 -484
- package/test/registry.test.ts +0 -306
- package/test/security.test.ts +0 -462
- package/test/storage.test.ts +0 -463
- package/test/template-validator.test.ts +0 -559
- package/test/workflow.test.ts +0 -592
- package/tsconfig.json +0 -16
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import type { AWSAccount, CrossAccountRole } from './manager';
|
|
2
|
+
/**
|
|
3
|
+
* Get recommended account structure
|
|
4
|
+
*/
|
|
5
|
+
export declare function getRecommendedStructure(size: 'basic' | 'standard' | 'enterprise'): AccountStructure;
|
|
6
|
+
/**
|
|
7
|
+
* Generate cross-account role CloudFormation
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateCrossAccountRoleCF(role: CrossAccountRole, managedPolicies?: string[]): any;
|
|
10
|
+
/**
|
|
11
|
+
* Validate account structure
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateAccountStructure(structure: AccountStructure): {
|
|
14
|
+
valid: boolean
|
|
15
|
+
errors: string[]
|
|
16
|
+
warnings: string[]
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Format account structure for display
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatAccountStructure(structure: AccountStructure): string;
|
|
22
|
+
/**
|
|
23
|
+
* AWS best practices: Multi-account structure
|
|
24
|
+
* Based on AWS Well-Architected Framework
|
|
25
|
+
*/
|
|
26
|
+
export declare const RECOMMENDED_ACCOUNT_STRUCTURES: {
|
|
27
|
+
basic: {
|
|
28
|
+
name: 'Basic (3 Accounts)';
|
|
29
|
+
description: 'Simple structure for small teams';
|
|
30
|
+
accounts: readonly [{
|
|
31
|
+
alias: 'management';
|
|
32
|
+
email: 'aws+management@example.com';
|
|
33
|
+
role: 'management';
|
|
34
|
+
ou: 'root';
|
|
35
|
+
description: 'Management account for AWS Organizations'
|
|
36
|
+
}, {
|
|
37
|
+
alias: 'production';
|
|
38
|
+
email: 'aws+production@example.com';
|
|
39
|
+
role: 'production';
|
|
40
|
+
ou: 'workloads';
|
|
41
|
+
description: 'Production workloads'
|
|
42
|
+
}, {
|
|
43
|
+
alias: 'development';
|
|
44
|
+
email: 'aws+development@example.com';
|
|
45
|
+
role: 'development';
|
|
46
|
+
ou: 'workloads';
|
|
47
|
+
description: 'Development and testing'
|
|
48
|
+
}];
|
|
49
|
+
organizationalUnits: readonly [{
|
|
50
|
+
name: 'root'
|
|
51
|
+
}, {
|
|
52
|
+
name: 'workloads';
|
|
53
|
+
parent: 'root'
|
|
54
|
+
}]
|
|
55
|
+
};
|
|
56
|
+
standard: {
|
|
57
|
+
name: 'Standard (5 Accounts)';
|
|
58
|
+
description: 'Recommended for most organizations';
|
|
59
|
+
accounts: readonly [{
|
|
60
|
+
alias: 'management';
|
|
61
|
+
email: 'aws+management@example.com';
|
|
62
|
+
role: 'management';
|
|
63
|
+
ou: 'root';
|
|
64
|
+
description: 'Management account'
|
|
65
|
+
}, {
|
|
66
|
+
alias: 'security';
|
|
67
|
+
email: 'aws+security@example.com';
|
|
68
|
+
role: 'security';
|
|
69
|
+
ou: 'security';
|
|
70
|
+
description: 'Security tooling and audit logs'
|
|
71
|
+
}, {
|
|
72
|
+
alias: 'shared-services';
|
|
73
|
+
email: 'aws+shared@example.com';
|
|
74
|
+
role: 'shared-services';
|
|
75
|
+
ou: 'infrastructure';
|
|
76
|
+
description: 'Shared services (CI/CD, monitoring)'
|
|
77
|
+
}, {
|
|
78
|
+
alias: 'production';
|
|
79
|
+
email: 'aws+production@example.com';
|
|
80
|
+
role: 'production';
|
|
81
|
+
ou: 'workloads';
|
|
82
|
+
description: 'Production environment'
|
|
83
|
+
}, {
|
|
84
|
+
alias: 'staging';
|
|
85
|
+
email: 'aws+staging@example.com';
|
|
86
|
+
role: 'staging';
|
|
87
|
+
ou: 'workloads';
|
|
88
|
+
description: 'Staging environment'
|
|
89
|
+
}, {
|
|
90
|
+
alias: 'development';
|
|
91
|
+
email: 'aws+development@example.com';
|
|
92
|
+
role: 'development';
|
|
93
|
+
ou: 'workloads';
|
|
94
|
+
description: 'Development environment'
|
|
95
|
+
}];
|
|
96
|
+
organizationalUnits: readonly [{
|
|
97
|
+
name: 'root'
|
|
98
|
+
}, {
|
|
99
|
+
name: 'security';
|
|
100
|
+
parent: 'root'
|
|
101
|
+
}, {
|
|
102
|
+
name: 'infrastructure';
|
|
103
|
+
parent: 'root'
|
|
104
|
+
}, {
|
|
105
|
+
name: 'workloads';
|
|
106
|
+
parent: 'root'
|
|
107
|
+
}]
|
|
108
|
+
};
|
|
109
|
+
enterprise: {
|
|
110
|
+
name: 'Enterprise (7+ Accounts)';
|
|
111
|
+
description: 'For large organizations with strict compliance requirements';
|
|
112
|
+
accounts: readonly [{
|
|
113
|
+
alias: 'management';
|
|
114
|
+
email: 'aws+management@example.com';
|
|
115
|
+
role: 'management';
|
|
116
|
+
ou: 'root';
|
|
117
|
+
description: 'Management account'
|
|
118
|
+
}, {
|
|
119
|
+
alias: 'audit';
|
|
120
|
+
email: 'aws+audit@example.com';
|
|
121
|
+
role: 'security';
|
|
122
|
+
ou: 'security';
|
|
123
|
+
description: 'Audit and compliance'
|
|
124
|
+
}, {
|
|
125
|
+
alias: 'log-archive';
|
|
126
|
+
email: 'aws+logs@example.com';
|
|
127
|
+
role: 'security';
|
|
128
|
+
ou: 'security';
|
|
129
|
+
description: 'Centralized log storage'
|
|
130
|
+
}, {
|
|
131
|
+
alias: 'shared-services';
|
|
132
|
+
email: 'aws+shared@example.com';
|
|
133
|
+
role: 'shared-services';
|
|
134
|
+
ou: 'infrastructure';
|
|
135
|
+
description: 'Shared infrastructure'
|
|
136
|
+
}, {
|
|
137
|
+
alias: 'network';
|
|
138
|
+
email: 'aws+network@example.com';
|
|
139
|
+
role: 'shared-services';
|
|
140
|
+
ou: 'infrastructure';
|
|
141
|
+
description: 'Network infrastructure (Transit Gateway)'
|
|
142
|
+
}, {
|
|
143
|
+
alias: 'production';
|
|
144
|
+
email: 'aws+production@example.com';
|
|
145
|
+
role: 'production';
|
|
146
|
+
ou: 'production-ou';
|
|
147
|
+
description: 'Production workloads'
|
|
148
|
+
}, {
|
|
149
|
+
alias: 'staging';
|
|
150
|
+
email: 'aws+staging@example.com';
|
|
151
|
+
role: 'staging';
|
|
152
|
+
ou: 'non-production-ou';
|
|
153
|
+
description: 'Staging environment'
|
|
154
|
+
}, {
|
|
155
|
+
alias: 'development';
|
|
156
|
+
email: 'aws+development@example.com';
|
|
157
|
+
role: 'development';
|
|
158
|
+
ou: 'non-production-ou';
|
|
159
|
+
description: 'Development environment'
|
|
160
|
+
}];
|
|
161
|
+
organizationalUnits: readonly [{
|
|
162
|
+
name: 'root'
|
|
163
|
+
}, {
|
|
164
|
+
name: 'security';
|
|
165
|
+
parent: 'root';
|
|
166
|
+
policies: readonly ['deny-root-access']
|
|
167
|
+
}, {
|
|
168
|
+
name: 'infrastructure';
|
|
169
|
+
parent: 'root'
|
|
170
|
+
}, {
|
|
171
|
+
name: 'production-ou';
|
|
172
|
+
parent: 'root';
|
|
173
|
+
policies: readonly ['require-mfa']
|
|
174
|
+
}, {
|
|
175
|
+
name: 'non-production-ou';
|
|
176
|
+
parent: 'root'
|
|
177
|
+
}]
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Service Control Policies (SCPs) - AWS best practices
|
|
182
|
+
*/
|
|
183
|
+
export declare const RECOMMENDED_SCPS: {
|
|
184
|
+
denyRootAccess: {
|
|
185
|
+
name: 'Deny Root User Access';
|
|
186
|
+
description: 'Prevent root user from performing any actions';
|
|
187
|
+
policyDocument: {
|
|
188
|
+
Version: '2012-10-17';
|
|
189
|
+
Statement: readonly [{
|
|
190
|
+
Sid: 'DenyRootUser';
|
|
191
|
+
Effect: 'Deny';
|
|
192
|
+
Action: '*';
|
|
193
|
+
Resource: '*';
|
|
194
|
+
Condition: {
|
|
195
|
+
StringLike: {
|
|
196
|
+
'aws:PrincipalArn': 'arn:aws:iam::*:root'
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}]
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
requireMFA: {
|
|
203
|
+
name: 'Require MFA for All Actions';
|
|
204
|
+
description: 'Require MFA for console and API access';
|
|
205
|
+
policyDocument: {
|
|
206
|
+
Version: '2012-10-17';
|
|
207
|
+
Statement: readonly [{
|
|
208
|
+
Sid: 'RequireMFA';
|
|
209
|
+
Effect: 'Deny';
|
|
210
|
+
Action: '*';
|
|
211
|
+
Resource: '*';
|
|
212
|
+
Condition: {
|
|
213
|
+
BoolIfExists: {
|
|
214
|
+
'aws:MultiFactorAuthPresent': 'false'
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}]
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
denyRegions: {
|
|
221
|
+
name: 'Deny Access to Non-Approved Regions';
|
|
222
|
+
description: 'Restrict operations to specific regions';
|
|
223
|
+
policyDocument: {
|
|
224
|
+
Version: '2012-10-17';
|
|
225
|
+
Statement: readonly [{
|
|
226
|
+
Sid: 'DenyNonApprovedRegions';
|
|
227
|
+
Effect: 'Deny';
|
|
228
|
+
NotAction: readonly ['iam:*', 'organizations:*', 'route53:*', 'cloudfront:*', 'support:*', 's3:*'];
|
|
229
|
+
Resource: '*';
|
|
230
|
+
Condition: {
|
|
231
|
+
StringNotEquals: {
|
|
232
|
+
'aws:RequestedRegion': readonly ['us-east-1', 'us-west-2']
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}]
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
preventLeaving: {
|
|
239
|
+
name: 'Prevent Leaving Organization';
|
|
240
|
+
description: 'Prevent accounts from leaving the organization';
|
|
241
|
+
policyDocument: {
|
|
242
|
+
Version: '2012-10-17';
|
|
243
|
+
Statement: readonly [{
|
|
244
|
+
Sid: 'PreventLeaving';
|
|
245
|
+
Effect: 'Deny';
|
|
246
|
+
Action: 'organizations:LeaveOrganization';
|
|
247
|
+
Resource: '*'
|
|
248
|
+
}]
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
denyS3Unencrypted: {
|
|
252
|
+
name: 'Deny Unencrypted S3 Uploads';
|
|
253
|
+
description: 'Require encryption for all S3 uploads';
|
|
254
|
+
policyDocument: {
|
|
255
|
+
Version: '2012-10-17';
|
|
256
|
+
Statement: readonly [{
|
|
257
|
+
Sid: 'DenyUnencryptedS3Uploads';
|
|
258
|
+
Effect: 'Deny';
|
|
259
|
+
Action: 's3:PutObject';
|
|
260
|
+
Resource: '*';
|
|
261
|
+
Condition: {
|
|
262
|
+
StringNotEquals: {
|
|
263
|
+
's3:x-amz-server-side-encryption': readonly ['AES256', 'aws:kms']
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}]
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
/**
|
|
271
|
+
* Common cross-account role configurations
|
|
272
|
+
*/
|
|
273
|
+
export declare const COMMON_CROSS_ACCOUNT_ROLES: {
|
|
274
|
+
deploymentRole: {
|
|
275
|
+
name: 'CrossAccountDeploymentRole';
|
|
276
|
+
description: 'Role for deploying infrastructure from CI/CD';
|
|
277
|
+
permissions: readonly ['cloudformation:*', 's3:*', 'ec2:*', 'ecs:*', 'lambda:*', 'iam:GetRole', 'iam:PassRole', 'logs:*', 'events:*']
|
|
278
|
+
};
|
|
279
|
+
readOnlyRole: {
|
|
280
|
+
name: 'CrossAccountReadOnlyRole';
|
|
281
|
+
description: 'Read-only access for monitoring and auditing';
|
|
282
|
+
permissions: readonly ['cloudformation:Describe*', 'cloudformation:List*', 'ec2:Describe*', 'ecs:Describe*', 'lambda:Get*', 'lambda:List*', 's3:Get*', 's3:List*', 'logs:Get*', 'logs:Describe*']
|
|
283
|
+
};
|
|
284
|
+
securityAuditRole: {
|
|
285
|
+
name: 'CrossAccountSecurityAuditRole';
|
|
286
|
+
description: 'Security audit and compliance checks';
|
|
287
|
+
permissions: readonly ['iam:Get*', 'iam:List*', 'iam:Generate*', 'access-analyzer:*', 'guardduty:Get*', 'guardduty:List*', 'securityhub:Get*', 'securityhub:List*', 'config:Describe*', 'config:Get*', 'config:List*']
|
|
288
|
+
};
|
|
289
|
+
breakGlassRole: {
|
|
290
|
+
name: 'CrossAccountBreakGlassRole';
|
|
291
|
+
description: 'Emergency access role (use with caution)';
|
|
292
|
+
permissions: readonly ['*']
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
/**
|
|
296
|
+
* Account structure presets
|
|
297
|
+
*/
|
|
298
|
+
export declare interface AccountStructure {
|
|
299
|
+
name: string
|
|
300
|
+
description: string
|
|
301
|
+
accounts: AccountStructureDefinition[]
|
|
302
|
+
organizationalUnits?: OUDefinition[]
|
|
303
|
+
}
|
|
304
|
+
export declare interface AccountStructureDefinition {
|
|
305
|
+
alias: string
|
|
306
|
+
email: string
|
|
307
|
+
role: AWSAccount['role']
|
|
308
|
+
ou?: string
|
|
309
|
+
description: string
|
|
310
|
+
}
|
|
311
|
+
export declare interface OUDefinition {
|
|
312
|
+
name: string
|
|
313
|
+
parent?: string
|
|
314
|
+
policies?: string[]
|
|
315
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global instances
|
|
3
|
+
*/
|
|
4
|
+
export declare const multiAccountManager: MultiAccountManager;
|
|
5
|
+
export declare const organizationManager: OrganizationManager;
|
|
6
|
+
/**
|
|
7
|
+
* Multi-Account Manager
|
|
8
|
+
* Manages deployments across multiple AWS accounts
|
|
9
|
+
*/
|
|
10
|
+
export declare interface AWSAccount {
|
|
11
|
+
id: string
|
|
12
|
+
alias?: string
|
|
13
|
+
email: string
|
|
14
|
+
role: 'management' | 'production' | 'staging' | 'development' | 'security' | 'shared-services'
|
|
15
|
+
organizationalUnit?: string
|
|
16
|
+
assumeRoleArn?: string
|
|
17
|
+
}
|
|
18
|
+
export declare interface CrossAccountRole {
|
|
19
|
+
roleArn: string
|
|
20
|
+
roleName: string
|
|
21
|
+
sourceAccountId: string
|
|
22
|
+
targetAccountId: string
|
|
23
|
+
permissions: string[]
|
|
24
|
+
externalId?: string
|
|
25
|
+
sessionDuration?: number
|
|
26
|
+
}
|
|
27
|
+
export declare interface AccountMapping {
|
|
28
|
+
environment: string
|
|
29
|
+
accountId: string
|
|
30
|
+
region: string
|
|
31
|
+
}
|
|
32
|
+
export declare interface OrganizationalUnit {
|
|
33
|
+
id: string
|
|
34
|
+
name: string
|
|
35
|
+
parentId?: string
|
|
36
|
+
accounts: string[]
|
|
37
|
+
}
|
|
38
|
+
export declare interface ServiceControlPolicy {
|
|
39
|
+
id: string
|
|
40
|
+
name: string
|
|
41
|
+
targetId: string
|
|
42
|
+
policyDocument: any
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Multi-account deployment manager
|
|
46
|
+
*/
|
|
47
|
+
export declare class MultiAccountManager {
|
|
48
|
+
private accounts: Map<string, AWSAccount>;
|
|
49
|
+
private crossAccountRoles: CrossAccountRole[];
|
|
50
|
+
private accountMappings: AccountMapping[];
|
|
51
|
+
registerAccount(account: AWSAccount): void;
|
|
52
|
+
getAccount(accountId: string): AWSAccount | undefined;
|
|
53
|
+
getAccountByAlias(alias: string): AWSAccount | undefined;
|
|
54
|
+
listAccounts(): AWSAccount[];
|
|
55
|
+
getAccountsByRole(role: AWSAccount['role']): AWSAccount[];
|
|
56
|
+
createCrossAccountRole(sourceAccountId: string, targetAccountId: string, roleName: string, permissions: string[], options?: {
|
|
57
|
+
externalId?: string
|
|
58
|
+
sessionDuration?: number
|
|
59
|
+
}): CrossAccountRole;
|
|
60
|
+
getAssumeRolePolicyDocument(sourceAccountId: string, externalId?: string): any;
|
|
61
|
+
generateCrossAccountPolicy(permissions: string[]): any;
|
|
62
|
+
mapEnvironmentToAccount(environment: string, accountId: string, region: string): void;
|
|
63
|
+
getAccountForEnvironment(environment: string): AccountMapping | undefined;
|
|
64
|
+
assumeRole(roleArn: string, sessionName: string, externalId?: string): Promise<{
|
|
65
|
+
accessKeyId: string
|
|
66
|
+
secretAccessKey: string
|
|
67
|
+
sessionToken: string
|
|
68
|
+
expiration: Date
|
|
69
|
+
}>;
|
|
70
|
+
getCredentialsForAccount(accountId: string): Promise<{
|
|
71
|
+
accessKeyId: string
|
|
72
|
+
secretAccessKey: string
|
|
73
|
+
sessionToken?: string
|
|
74
|
+
}>;
|
|
75
|
+
listCrossAccountRoles(): CrossAccountRole[];
|
|
76
|
+
getCrossAccountRolesForAccount(accountId: string): CrossAccountRole[];
|
|
77
|
+
validateAccountAccess(accountId: string): Promise<boolean>;
|
|
78
|
+
getConsolidatedBilling(): Promise<{
|
|
79
|
+
totalCost: number
|
|
80
|
+
byAccount: Record<string, number>
|
|
81
|
+
}>;
|
|
82
|
+
clear(): void;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* AWS Organizations helper
|
|
86
|
+
*/
|
|
87
|
+
export declare class OrganizationManager {
|
|
88
|
+
private organizationId?: string;
|
|
89
|
+
private organizationalUnits: Map<string, OrganizationalUnit>;
|
|
90
|
+
getOrganizationId(): string | undefined;
|
|
91
|
+
setOrganizationId(id: string): void;
|
|
92
|
+
createOrganizationalUnit(name: string, parentId?: string): OrganizationalUnit;
|
|
93
|
+
getOrganizationalUnit(id: string): OrganizationalUnit | undefined;
|
|
94
|
+
listOrganizationalUnits(): OrganizationalUnit[];
|
|
95
|
+
addAccountToOU(ouId: string, accountId: string): void;
|
|
96
|
+
removeAccountFromOU(ouId: string, accountId: string): void;
|
|
97
|
+
getAccountsInOU(ouId: string): string[];
|
|
98
|
+
applyServiceControlPolicy(targetId: string, policyDocument: any): ServiceControlPolicy;
|
|
99
|
+
clear(): void;
|
|
100
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global instances
|
|
3
|
+
*/
|
|
4
|
+
export declare const crossRegionReferenceManager: CrossRegionReferenceManager;
|
|
5
|
+
export declare const globalResourceManager: GlobalResourceManager;
|
|
6
|
+
export declare const regionPairManager: RegionPairManager;
|
|
7
|
+
export declare const stackDependencyManager: StackDependencyManager;
|
|
8
|
+
/**
|
|
9
|
+
* Cross-Region Resource Management
|
|
10
|
+
* Handles references and dependencies between regions
|
|
11
|
+
*/
|
|
12
|
+
export declare interface CrossRegionReference {
|
|
13
|
+
sourceRegion: string
|
|
14
|
+
targetRegion: string
|
|
15
|
+
resourceType: string
|
|
16
|
+
resourceId: string
|
|
17
|
+
value: string
|
|
18
|
+
}
|
|
19
|
+
export declare interface CrossRegionExport {
|
|
20
|
+
region: string
|
|
21
|
+
exportName: string
|
|
22
|
+
value: string
|
|
23
|
+
description?: string
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Global resources that exist in one region but are accessible globally
|
|
27
|
+
*/
|
|
28
|
+
export declare interface GlobalResource {
|
|
29
|
+
type: 'cloudfront' | 'route53' | 'waf' | 'iam' | 's3-website'
|
|
30
|
+
id: string
|
|
31
|
+
region: string
|
|
32
|
+
arn: string
|
|
33
|
+
endpoint?: string
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Region pairing for replication and failover
|
|
37
|
+
*/
|
|
38
|
+
export declare interface RegionPair {
|
|
39
|
+
primary: string
|
|
40
|
+
secondary: string
|
|
41
|
+
replicationConfig?: {
|
|
42
|
+
s3: boolean
|
|
43
|
+
dynamodb: boolean
|
|
44
|
+
rds: boolean
|
|
45
|
+
}
|
|
46
|
+
failoverConfig?: {
|
|
47
|
+
automatic: boolean
|
|
48
|
+
healthCheckInterval: number
|
|
49
|
+
failoverThreshold: number
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Cross-region stack dependencies
|
|
54
|
+
*/
|
|
55
|
+
export declare interface StackDependency {
|
|
56
|
+
dependentStack: string
|
|
57
|
+
dependentRegion: string
|
|
58
|
+
dependsOnStack: string
|
|
59
|
+
dependsOnRegion: string
|
|
60
|
+
outputKey: string
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Cross-region reference manager
|
|
64
|
+
*/
|
|
65
|
+
export declare class CrossRegionReferenceManager {
|
|
66
|
+
private references: CrossRegionReference[];
|
|
67
|
+
private exports: Map<string, CrossRegionExport[]>;
|
|
68
|
+
addExport(export_: CrossRegionExport): void;
|
|
69
|
+
getExport(region: string, exportName: string): string | undefined;
|
|
70
|
+
createReference(sourceRegion: string, targetRegion: string, resourceType: string, resourceId: string): string;
|
|
71
|
+
resolveReference(targetRegion: string, parameterName: string): Promise<string>;
|
|
72
|
+
getReferencesForRegion(region: string): CrossRegionReference[];
|
|
73
|
+
clear(): void;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Global resource manager
|
|
77
|
+
*/
|
|
78
|
+
export declare class GlobalResourceManager {
|
|
79
|
+
private resources: Map<string, GlobalResource>;
|
|
80
|
+
register(resource: GlobalResource): void;
|
|
81
|
+
get(id: string): GlobalResource | undefined;
|
|
82
|
+
getByType(type: GlobalResource['type']): GlobalResource[];
|
|
83
|
+
getCloudFrontDistributions(): GlobalResource[];
|
|
84
|
+
getRoute53HostedZones(): GlobalResource[];
|
|
85
|
+
getWAFWebACLs(): GlobalResource[];
|
|
86
|
+
remove(id: string): void;
|
|
87
|
+
clear(): void;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Region pair manager
|
|
91
|
+
*/
|
|
92
|
+
export declare class RegionPairManager {
|
|
93
|
+
private pairs: RegionPair[];
|
|
94
|
+
addPair(pair: RegionPair): void;
|
|
95
|
+
getPairedRegion(region: string): string | undefined;
|
|
96
|
+
getAllPairs(): RegionPair[];
|
|
97
|
+
getReplicatedPairs(): RegionPair[];
|
|
98
|
+
getFailoverPairs(): RegionPair[];
|
|
99
|
+
arePaired(region1: string, region2: string): boolean;
|
|
100
|
+
clear(): void;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Stack dependency manager
|
|
104
|
+
*/
|
|
105
|
+
export declare class StackDependencyManager {
|
|
106
|
+
private dependencies: StackDependency[];
|
|
107
|
+
addDependency(dependency: StackDependency): void;
|
|
108
|
+
getDependencies(stackName: string, region: string): StackDependency[];
|
|
109
|
+
getDependents(stackName: string, region: string): StackDependency[];
|
|
110
|
+
hasDependencies(stackName: string, region: string): boolean;
|
|
111
|
+
getDeploymentOrder(stacks: Array<{ name: string; region: string }>): Array<{ name: string; region: string }>;
|
|
112
|
+
detectCircularDependencies(): boolean;
|
|
113
|
+
clear(): void;
|
|
114
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { CloudConfig } from '@stacksjs/ts-cloud-types';
|
|
2
|
+
/**
|
|
3
|
+
* Global multi-region manager instance
|
|
4
|
+
*/
|
|
5
|
+
export declare const multiRegionManager: MultiRegionManager;
|
|
6
|
+
export declare interface Region {
|
|
7
|
+
code: string
|
|
8
|
+
name: string
|
|
9
|
+
isPrimary?: boolean
|
|
10
|
+
weight?: number
|
|
11
|
+
}
|
|
12
|
+
export declare 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 declare 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 declare 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: Map<string, MultiRegionDeployment>;
|
|
52
|
+
deploy(config: CloudConfig, multiRegionConfig: MultiRegionConfig): Promise<MultiRegionDeployment>;
|
|
53
|
+
private deployToRegion(config: CloudConfig, region: Region, deployment: MultiRegionDeployment): Promise<void>;
|
|
54
|
+
private deployGlobalResources(deployment: MultiRegionDeployment, config: MultiRegionConfig): Promise<void>;
|
|
55
|
+
private deployRoute53(deployment: MultiRegionDeployment, config: MultiRegionConfig): Promise<any>;
|
|
56
|
+
private deployCloudFront(deployment: MultiRegionDeployment, config: MultiRegionConfig): Promise<any>;
|
|
57
|
+
private deployWAF(deployment: MultiRegionDeployment): Promise<any>;
|
|
58
|
+
private setupReplication(deployment: MultiRegionDeployment, config: MultiRegionConfig): Promise<void>;
|
|
59
|
+
private setupS3Replication(deployment: MultiRegionDeployment): Promise<void>;
|
|
60
|
+
private setupDynamoDBReplication(deployment: MultiRegionDeployment): Promise<void>;
|
|
61
|
+
private setupSecretsReplication(deployment: MultiRegionDeployment): Promise<void>;
|
|
62
|
+
private setupFailover(deployment: MultiRegionDeployment, config: MultiRegionConfig): Promise<void>;
|
|
63
|
+
destroy(deploymentId: string): Promise<void>;
|
|
64
|
+
private destroyGlobalResources(globalResources: Record<string, any>): Promise<void>;
|
|
65
|
+
private destroyRegionStack(region: RegionDeployment): Promise<void>;
|
|
66
|
+
getDeployment(deploymentId: string): MultiRegionDeployment | undefined;
|
|
67
|
+
listDeployments(): MultiRegionDeployment[];
|
|
68
|
+
private getStackName(config: CloudConfig, region: string): string;
|
|
69
|
+
private createRegionConfig(config: CloudConfig, region: Region): CloudConfig;
|
|
70
|
+
private deployStack(stackName: string, config: CloudConfig, region: string): Promise<void>;
|
|
71
|
+
private generateDeploymentId(): string;
|
|
72
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get region by code
|
|
3
|
+
*/
|
|
4
|
+
export declare function getRegion(code: string): RegionInfo | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Get all regions
|
|
7
|
+
*/
|
|
8
|
+
export declare function getAllRegions(): RegionInfo[];
|
|
9
|
+
/**
|
|
10
|
+
* Get regions by location
|
|
11
|
+
*/
|
|
12
|
+
export declare function getRegionsByLocation(location: string): RegionInfo[];
|
|
13
|
+
/**
|
|
14
|
+
* Get regions with specific compliance
|
|
15
|
+
*/
|
|
16
|
+
export declare function getRegionsByCompliance(compliance: string): RegionInfo[];
|
|
17
|
+
/**
|
|
18
|
+
* Get regions by pricing tier
|
|
19
|
+
*/
|
|
20
|
+
export declare function getRegionsByPricingTier(tier: 'standard' | 'reduced' | 'premium'): RegionInfo[];
|
|
21
|
+
/**
|
|
22
|
+
* Validate region code
|
|
23
|
+
*/
|
|
24
|
+
export declare function isValidRegion(code: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Get closest region to user location
|
|
27
|
+
*/
|
|
28
|
+
export declare function getClosestRegion(userLocation: {
|
|
29
|
+
continent?: string
|
|
30
|
+
country?: string
|
|
31
|
+
}): RegionInfo;
|
|
32
|
+
export declare function suggestRegions(requirements: RegionRequirements): RegionInfo[];
|
|
33
|
+
export declare function suggestRegionPairs(primaryRegion: string): RegionPairSuggestion[];
|
|
34
|
+
/**
|
|
35
|
+
* Format region for display
|
|
36
|
+
*/
|
|
37
|
+
export declare function formatRegion(region: RegionInfo): string;
|
|
38
|
+
/**
|
|
39
|
+
* Format region list for display
|
|
40
|
+
*/
|
|
41
|
+
export declare function formatRegionList(regions: RegionInfo[]): string;
|
|
42
|
+
/**
|
|
43
|
+
* Get region statistics
|
|
44
|
+
*/
|
|
45
|
+
export declare function getRegionStats(): {
|
|
46
|
+
total: number
|
|
47
|
+
byContinent: Record<string, number>
|
|
48
|
+
byPricingTier: Record<string, number>
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* AWS Region database
|
|
52
|
+
*/
|
|
53
|
+
export declare const AWS_REGIONS: RegionInfo[];
|
|
54
|
+
/**
|
|
55
|
+
* AWS Region utilities
|
|
56
|
+
* Region selection, validation, and configuration
|
|
57
|
+
*/
|
|
58
|
+
export declare interface RegionInfo {
|
|
59
|
+
code: string
|
|
60
|
+
name: string
|
|
61
|
+
location: string
|
|
62
|
+
launchYear: number
|
|
63
|
+
availabilityZones: number
|
|
64
|
+
localZones?: number
|
|
65
|
+
wavelengthZones?: number
|
|
66
|
+
services: {
|
|
67
|
+
compute: boolean
|
|
68
|
+
storage: boolean
|
|
69
|
+
database: boolean
|
|
70
|
+
networking: boolean
|
|
71
|
+
ml: boolean
|
|
72
|
+
analytics: boolean
|
|
73
|
+
}
|
|
74
|
+
pricing: {
|
|
75
|
+
tier: 'standard' | 'reduced' | 'premium'
|
|
76
|
+
multiplier: number
|
|
77
|
+
}
|
|
78
|
+
compliance: string[]
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Suggest regions based on requirements
|
|
82
|
+
*/
|
|
83
|
+
export declare interface RegionRequirements {
|
|
84
|
+
compliance?: string[]
|
|
85
|
+
pricingSensitive?: boolean
|
|
86
|
+
lowLatency?: boolean
|
|
87
|
+
userLocations?: string[]
|
|
88
|
+
requiredServices?: Array<keyof RegionInfo['services']>
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Calculate region pairs for failover
|
|
92
|
+
*/
|
|
93
|
+
export declare interface RegionPairSuggestion {
|
|
94
|
+
primary: RegionInfo
|
|
95
|
+
secondary: RegionInfo
|
|
96
|
+
distance: number
|
|
97
|
+
sameContinent: boolean
|
|
98
|
+
}
|