@ts-cloud/core 0.2.2 → 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.
Files changed (226) hide show
  1. package/dist/advanced-features.test.d.ts +1 -0
  2. package/dist/aws/cloudformation.d.ts +136 -0
  3. package/dist/aws/cloudfront.d.ts +45 -0
  4. package/dist/aws/credentials.d.ts +77 -0
  5. package/dist/aws/credentials.test.d.ts +4 -0
  6. package/dist/aws/index.d.ts +10 -0
  7. package/dist/aws/s3.d.ts +256 -0
  8. package/dist/aws/s3.test.d.ts +4 -0
  9. package/dist/aws/signature.d.ts +142 -0
  10. package/dist/aws/signature.test.d.ts +4 -0
  11. package/dist/backup/disaster-recovery.d.ts +140 -0
  12. package/dist/backup/disaster-recovery.test.d.ts +1 -0
  13. package/dist/backup/index.d.ts +8 -0
  14. package/dist/backup/manager.d.ts +172 -0
  15. package/dist/backup/manager.test.d.ts +1 -0
  16. package/dist/cicd/circleci.d.ts +50 -0
  17. package/dist/cicd/github-actions.d.ts +62 -0
  18. package/dist/cicd/gitlab-ci.d.ts +50 -0
  19. package/dist/cicd/index.d.ts +7 -0
  20. package/dist/cli/history.d.ts +137 -0
  21. package/dist/cli/index.d.ts +9 -0
  22. package/dist/cli/progress.d.ts +193 -0
  23. package/dist/cli/repl.d.ts +148 -0
  24. package/dist/cli/suggestions.d.ts +74 -0
  25. package/dist/cli/table.d.ts +73 -0
  26. package/dist/cli/table.test.d.ts +1 -0
  27. package/dist/cloudformation/builder.d.ts +93 -0
  28. package/dist/cloudformation/builder.test.d.ts +4 -0
  29. package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
  30. package/dist/cloudformation/builders/cache.d.ts +35 -0
  31. package/dist/cloudformation/builders/cdn.d.ts +34 -0
  32. package/dist/cloudformation/builders/compute.d.ts +68 -0
  33. package/dist/cloudformation/builders/database.d.ts +61 -0
  34. package/dist/cloudformation/builders/functions.d.ts +32 -0
  35. package/dist/cloudformation/builders/messaging.d.ts +17 -0
  36. package/dist/cloudformation/builders/monitoring.d.ts +39 -0
  37. package/dist/cloudformation/builders/network.d.ts +14 -0
  38. package/dist/cloudformation/builders/queue.d.ts +16 -0
  39. package/dist/cloudformation/builders/security.d.ts +31 -0
  40. package/dist/cloudformation/builders/storage.d.ts +36 -0
  41. package/dist/cloudformation/index.d.ts +10 -0
  42. package/dist/cloudformation/types.d.ts +200 -0
  43. package/dist/compliance/aws-config.d.ts +175 -0
  44. package/dist/compliance/cloudtrail.d.ts +132 -0
  45. package/dist/compliance/compliance.test.d.ts +1 -0
  46. package/dist/compliance/guardduty.d.ts +176 -0
  47. package/dist/compliance/index.d.ts +12 -0
  48. package/dist/compliance/security-hub.d.ts +178 -0
  49. package/dist/containers/build-optimization.d.ts +155 -0
  50. package/dist/containers/containers.test.d.ts +1 -0
  51. package/dist/containers/image-scanning.d.ts +144 -0
  52. package/dist/containers/index.d.ts +8 -0
  53. package/dist/containers/registry.d.ts +129 -0
  54. package/dist/containers/service-mesh.d.ts +254 -0
  55. package/dist/database/database.test.d.ts +1 -0
  56. package/dist/database/index.d.ts +8 -0
  57. package/dist/database/migrations.d.ts +153 -0
  58. package/dist/database/performance.d.ts +219 -0
  59. package/dist/database/replicas.d.ts +218 -0
  60. package/dist/database/users.d.ts +165 -0
  61. package/dist/dependency-graph.d.ts +37 -0
  62. package/dist/deployment/ab-testing.d.ts +165 -0
  63. package/dist/deployment/blue-green.d.ts +140 -0
  64. package/dist/deployment/canary.d.ts +165 -0
  65. package/dist/deployment/deployment.test.d.ts +1 -0
  66. package/dist/deployment/index.d.ts +12 -0
  67. package/dist/deployment/progressive.d.ts +50 -0
  68. package/dist/dns/dns.test.d.ts +1 -0
  69. package/dist/dns/dnssec.d.ts +120 -0
  70. package/dist/dns/index.d.ts +7 -0
  71. package/dist/dns/resolver.d.ts +216 -0
  72. package/dist/dns/routing.d.ts +277 -0
  73. package/dist/email/advanced/analytics.d.ts +107 -0
  74. package/dist/email/advanced/index.d.ts +10 -0
  75. package/dist/email/advanced/rules.d.ts +131 -0
  76. package/dist/email/advanced/scheduling.d.ts +81 -0
  77. package/dist/email/advanced/search.d.ts +91 -0
  78. package/dist/email/advanced/shared-mailboxes.d.ts +109 -0
  79. package/dist/email/advanced/templates.d.ts +95 -0
  80. package/dist/email/advanced/threading.d.ts +65 -0
  81. package/dist/email/analytics.d.ts +189 -0
  82. package/dist/email/bounce-handling.d.ts +171 -0
  83. package/dist/email/email.test.d.ts +1 -0
  84. package/dist/email/handlers/__tests__/inbound.test.d.ts +1 -0
  85. package/dist/email/handlers/__tests__/outbound.test.d.ts +1 -0
  86. package/dist/email/handlers/converter.d.ts +11 -0
  87. package/dist/email/handlers/feedback.d.ts +11 -0
  88. package/dist/email/handlers/inbound.d.ts +13 -0
  89. package/dist/email/handlers/outbound.d.ts +13 -0
  90. package/dist/email/index.d.ts +10 -0
  91. package/dist/email/reputation.d.ts +133 -0
  92. package/dist/email/templates.d.ts +124 -0
  93. package/dist/errors/index.d.ts +177 -0
  94. package/dist/errors/index.test.d.ts +4 -0
  95. package/dist/health-checks/index.d.ts +35 -0
  96. package/dist/index.d.ts +15 -256
  97. package/dist/index.js +228 -80
  98. package/dist/intrinsic-functions.d.ts +77 -0
  99. package/dist/lambda/concurrency.d.ts +146 -0
  100. package/dist/lambda/destinations.d.ts +141 -0
  101. package/dist/lambda/dlq.d.ts +160 -0
  102. package/dist/lambda/index.d.ts +10 -0
  103. package/dist/lambda/lambda.test.d.ts +1 -0
  104. package/dist/lambda/layers.d.ts +117 -0
  105. package/dist/lambda/versions.d.ts +145 -0
  106. package/dist/lambda/vpc.d.ts +164 -0
  107. package/dist/local/config.d.ts +44 -0
  108. package/dist/local/index.d.ts +5 -0
  109. package/dist/local/mock-aws.d.ts +69 -0
  110. package/dist/modules/ai.d.ts +108 -0
  111. package/dist/modules/api.d.ts +157 -0
  112. package/dist/modules/auth.d.ts +262 -0
  113. package/dist/modules/cache.d.ts +108 -0
  114. package/dist/modules/cdn.d.ts +305 -0
  115. package/dist/modules/communication.d.ts +117 -0
  116. package/dist/modules/compute.d.ts +1376 -0
  117. package/dist/modules/database.d.ts +144 -0
  118. package/dist/modules/deployment.d.ts +372 -0
  119. package/dist/modules/dns.d.ts +143 -0
  120. package/dist/modules/email.d.ts +314 -0
  121. package/dist/modules/filesystem.d.ts +132 -0
  122. package/dist/modules/index.d.ts +31 -0
  123. package/dist/modules/messaging.d.ts +210 -0
  124. package/dist/modules/monitoring.d.ts +574 -0
  125. package/dist/modules/network.d.ts +148 -0
  126. package/dist/modules/parameter-store.d.ts +143 -0
  127. package/dist/modules/permissions.d.ts +245 -0
  128. package/dist/modules/phone.d.ts +125 -0
  129. package/dist/modules/queue.d.ts +411 -0
  130. package/dist/modules/redirects.d.ts +140 -0
  131. package/dist/modules/registry.d.ts +189 -0
  132. package/dist/modules/search.d.ts +135 -0
  133. package/dist/modules/secrets.d.ts +149 -0
  134. package/dist/modules/security.d.ts +219 -0
  135. package/dist/modules/sms.d.ts +130 -0
  136. package/dist/modules/storage.d.ts +344 -0
  137. package/dist/modules/workflow.d.ts +288 -0
  138. package/dist/multi-account/config.d.ts +166 -0
  139. package/dist/multi-account/index.d.ts +6 -0
  140. package/dist/multi-account/manager.d.ts +181 -0
  141. package/dist/multi-region/cross-region.d.ts +204 -0
  142. package/dist/multi-region/index.d.ts +7 -0
  143. package/dist/multi-region/manager.d.ts +136 -0
  144. package/dist/multi-region/regions.d.ts +98 -0
  145. package/dist/network-security/index.d.ts +55 -0
  146. package/dist/observability/index.d.ts +8 -0
  147. package/dist/observability/logs.d.ts +213 -0
  148. package/dist/observability/metrics.d.ts +187 -0
  149. package/dist/observability/observability.test.d.ts +1 -0
  150. package/dist/observability/synthetics.d.ts +189 -0
  151. package/dist/observability/xray.d.ts +193 -0
  152. package/dist/phone/advanced/analytics.d.ts +83 -0
  153. package/dist/phone/advanced/callbacks.d.ts +67 -0
  154. package/dist/phone/advanced/index.d.ts +7 -0
  155. package/dist/phone/advanced/ivr-builder.d.ts +130 -0
  156. package/dist/phone/advanced/recording.d.ts +62 -0
  157. package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +1 -0
  158. package/dist/phone/handlers/incoming-call.d.ts +10 -0
  159. package/dist/phone/handlers/missed-call.d.ts +9 -0
  160. package/dist/phone/handlers/voicemail.d.ts +10 -0
  161. package/dist/phone/index.d.ts +5 -0
  162. package/dist/presets/api-backend.d.ts +11 -0
  163. package/dist/presets/data-pipeline.d.ts +11 -0
  164. package/dist/presets/extend.d.ts +194 -0
  165. package/dist/presets/extend.test.d.ts +4 -0
  166. package/dist/presets/fullstack-app.d.ts +12 -0
  167. package/dist/presets/index.d.ts +13 -0
  168. package/dist/presets/jamstack.d.ts +12 -0
  169. package/dist/presets/microservices.d.ts +18 -0
  170. package/dist/presets/ml-api.d.ts +13 -0
  171. package/dist/presets/nodejs-server.d.ts +14 -0
  172. package/dist/presets/nodejs-serverless.d.ts +14 -0
  173. package/dist/presets/realtime-app.d.ts +11 -0
  174. package/dist/presets/static-site.d.ts +12 -0
  175. package/dist/presets/traditional-web-app.d.ts +16 -0
  176. package/dist/presets/wordpress.d.ts +12 -0
  177. package/dist/preview/github.d.ts +32 -0
  178. package/dist/preview/github.test.d.ts +1 -0
  179. package/dist/preview/index.d.ts +10 -0
  180. package/dist/preview/manager.d.ts +101 -0
  181. package/dist/preview/manager.test.d.ts +1 -0
  182. package/dist/preview/notifications.d.ts +89 -0
  183. package/dist/preview/notifications.test.d.ts +1 -0
  184. package/dist/queue/batch-processing.d.ts +138 -0
  185. package/dist/queue/dlq-monitoring.d.ts +143 -0
  186. package/dist/queue/fifo.d.ts +131 -0
  187. package/dist/queue/index.d.ts +8 -0
  188. package/dist/queue/management.d.ts +162 -0
  189. package/dist/queue/queue.test.d.ts +1 -0
  190. package/dist/resource-mgmt/index.d.ts +44 -0
  191. package/dist/resource-naming.d.ts +26 -0
  192. package/dist/s3/index.d.ts +227 -0
  193. package/dist/schema/index.d.ts +12 -0
  194. package/dist/security/certificate-manager.d.ts +184 -0
  195. package/dist/security/index.d.ts +8 -0
  196. package/dist/security/scanning.d.ts +196 -0
  197. package/dist/security/secrets-manager.d.ts +204 -0
  198. package/dist/security/secrets-rotation.d.ts +167 -0
  199. package/dist/security/security.test.d.ts +1 -0
  200. package/dist/sms/advanced/ab-testing.d.ts +74 -0
  201. package/dist/sms/advanced/analytics.d.ts +75 -0
  202. package/dist/sms/advanced/campaigns.d.ts +96 -0
  203. package/dist/sms/advanced/chatbot.d.ts +67 -0
  204. package/dist/sms/advanced/index.d.ts +9 -0
  205. package/dist/sms/advanced/link-tracking.d.ts +60 -0
  206. package/dist/sms/advanced/mms.d.ts +60 -0
  207. package/dist/sms/handlers/__tests__/send.test.d.ts +1 -0
  208. package/dist/sms/handlers/delivery-status.d.ts +10 -0
  209. package/dist/sms/handlers/receive.d.ts +10 -0
  210. package/dist/sms/handlers/send.d.ts +10 -0
  211. package/dist/sms/index.d.ts +5 -0
  212. package/dist/stack-diff.d.ts +38 -0
  213. package/dist/static-site/index.d.ts +49 -0
  214. package/dist/template-builder.d.ts +42 -0
  215. package/dist/template-validator.d.ts +28 -0
  216. package/dist/types.d.ts +2514 -0
  217. package/dist/utils/cache.d.ts +117 -0
  218. package/dist/utils/diff.d.ts +52 -0
  219. package/dist/utils/hash.d.ts +73 -0
  220. package/dist/utils/index.d.ts +7 -0
  221. package/dist/utils/parallel.d.ts +78 -0
  222. package/dist/validators/credentials.d.ts +30 -0
  223. package/dist/validators/credentials.test.d.ts +4 -0
  224. package/dist/validators/quotas.d.ts +64 -0
  225. package/dist/validators/quotas.test.d.ts +4 -0
  226. package/package.json +2 -2
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Progressive Rollouts, Feature Flags, and Deployment Gates
3
+ */
4
+ export interface ProgressiveRollout {
5
+ id: string;
6
+ name: string;
7
+ stages: Array<{
8
+ percentage: number;
9
+ durationMinutes: number;
10
+ }>;
11
+ currentStage: number;
12
+ }
13
+ export interface FeatureFlag {
14
+ id: string;
15
+ name: string;
16
+ enabled: boolean;
17
+ rolloutPercentage: number;
18
+ targetingRules: Array<{
19
+ attribute: string;
20
+ operator: string;
21
+ value: any;
22
+ }>;
23
+ }
24
+ export interface DeploymentGate {
25
+ id: string;
26
+ name: string;
27
+ type: 'manual' | 'automated';
28
+ approvers?: string[];
29
+ conditions?: Array<{
30
+ metric: string;
31
+ threshold: number;
32
+ }>;
33
+ }
34
+ export declare class ProgressiveDeploymentManager {
35
+ private rollouts;
36
+ private flags;
37
+ private gates;
38
+ private counter;
39
+ createProgressiveRollout(name: string, stages: Array<{
40
+ percentage: number;
41
+ durationMinutes: number;
42
+ }>): ProgressiveRollout;
43
+ createFeatureFlag(name: string, rolloutPercentage?: number): FeatureFlag;
44
+ createDeploymentGate(name: string, type: 'manual' | 'automated', approvers?: string[], conditions?: Array<{
45
+ metric: string;
46
+ threshold: number;
47
+ }>): DeploymentGate;
48
+ clear(): void;
49
+ }
50
+ export declare const progressiveDeploymentManager: ProgressiveDeploymentManager;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,120 @@
1
+ /**
2
+ * DNSSEC Configuration
3
+ * DNS Security Extensions for Route53
4
+ */
5
+ export interface DNSSECConfig {
6
+ id: string;
7
+ hostedZoneId: string;
8
+ status: 'SIGNING' | 'SIGNED' | 'NOT_SIGNING' | 'DELETING' | 'ACTION_NEEDED';
9
+ signingStatus?: string;
10
+ statusMessage?: string;
11
+ }
12
+ export interface KSK {
13
+ id: string;
14
+ name: string;
15
+ hostedZoneId: string;
16
+ status: 'ACTIVE' | 'INACTIVE' | 'DELETING' | 'ACTION_NEEDED';
17
+ keyManagementServiceArn: string;
18
+ dnskeyRecord?: string;
19
+ dsRecord?: string;
20
+ digestAlgorithm: number;
21
+ digestValue?: string;
22
+ flag: number;
23
+ keyTag?: number;
24
+ publicKey?: string;
25
+ }
26
+ export interface DNSSECValidation {
27
+ id: string;
28
+ domain: string;
29
+ validationStatus: 'VALID' | 'INVALID' | 'INSECURE' | 'BOGUS';
30
+ dnskeyPresent: boolean;
31
+ rrsigPresent: boolean;
32
+ validSignature: boolean;
33
+ errors: string[];
34
+ }
35
+ /**
36
+ * DNSSEC manager
37
+ */
38
+ export declare class DNSSECManager {
39
+ private configs;
40
+ private ksks;
41
+ private validations;
42
+ private configCounter;
43
+ private kskCounter;
44
+ private validationCounter;
45
+ /**
46
+ * Enable DNSSEC
47
+ */
48
+ enableDNSSEC(options: {
49
+ hostedZoneId: string;
50
+ kmsKeyArn?: string;
51
+ }): DNSSECConfig;
52
+ /**
53
+ * Disable DNSSEC
54
+ */
55
+ disableDNSSEC(configId: string): DNSSECConfig;
56
+ /**
57
+ * Create KSK (Key-Signing Key)
58
+ */
59
+ createKSK(options: {
60
+ name: string;
61
+ hostedZoneId: string;
62
+ kmsKeyArn: string;
63
+ }): KSK;
64
+ /**
65
+ * Deactivate KSK
66
+ */
67
+ deactivateKSK(kskId: string): KSK;
68
+ /**
69
+ * Validate DNSSEC
70
+ */
71
+ validateDNSSEC(options: {
72
+ domain: string;
73
+ checkDNSKEY?: boolean;
74
+ checkRRSIG?: boolean;
75
+ }): DNSSECValidation;
76
+ /**
77
+ * Get DNSSEC config
78
+ */
79
+ getDNSSECConfig(id: string): DNSSECConfig | undefined;
80
+ /**
81
+ * List DNSSEC configs
82
+ */
83
+ listDNSSECConfigs(): DNSSECConfig[];
84
+ /**
85
+ * Get KSK
86
+ */
87
+ getKSK(id: string): KSK | undefined;
88
+ /**
89
+ * List KSKs
90
+ */
91
+ listKSKs(hostedZoneId?: string): KSK[];
92
+ /**
93
+ * Get DS record for parent zone
94
+ */
95
+ getDSRecord(kskId: string): string;
96
+ /**
97
+ * Generate public key (simulated)
98
+ */
99
+ private generatePublicKey;
100
+ /**
101
+ * Generate digest (simulated)
102
+ */
103
+ private generateDigest;
104
+ /**
105
+ * Generate CloudFormation for DNSSEC
106
+ */
107
+ generateDNSSECCF(config: DNSSECConfig): any;
108
+ /**
109
+ * Generate CloudFormation for KSK
110
+ */
111
+ generateKSKCF(ksk: KSK): any;
112
+ /**
113
+ * Clear all data
114
+ */
115
+ clear(): void;
116
+ }
117
+ /**
118
+ * Global DNSSEC manager instance
119
+ */
120
+ export declare const dnssecManager: DNSSECManager;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * DNS Advanced Features
3
+ * Routing policies, DNSSEC, and Route53 Resolver
4
+ */
5
+ export * from './routing';
6
+ export * from './dnssec';
7
+ export * from './resolver';
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Route53 Resolver
3
+ * DNS firewall, resolver rules, and endpoints
4
+ */
5
+ export interface ResolverEndpoint {
6
+ id: string;
7
+ name: string;
8
+ direction: 'INBOUND' | 'OUTBOUND';
9
+ ipAddresses: ResolverIP[];
10
+ securityGroupIds: string[];
11
+ status: 'CREATING' | 'OPERATIONAL' | 'UPDATING' | 'DELETING' | 'ACTION_NEEDED';
12
+ }
13
+ export interface ResolverIP {
14
+ subnetId: string;
15
+ ip?: string;
16
+ ipv6?: string;
17
+ }
18
+ export interface ResolverRule {
19
+ id: string;
20
+ name: string;
21
+ ruleType: 'FORWARD' | 'SYSTEM' | 'RECURSIVE';
22
+ domainName: string;
23
+ targetIps?: TargetIP[];
24
+ resolverEndpointId?: string;
25
+ status: 'COMPLETE' | 'CREATING' | 'UPDATING' | 'DELETING' | 'FAILED';
26
+ }
27
+ export interface TargetIP {
28
+ ip: string;
29
+ port?: number;
30
+ }
31
+ export interface DNSFirewall {
32
+ id: string;
33
+ name: string;
34
+ firewallRuleGroupAssociations: FirewallRuleGroupAssociation[];
35
+ }
36
+ export interface FirewallRuleGroupAssociation {
37
+ id: string;
38
+ vpcId: string;
39
+ firewallRuleGroupId: string;
40
+ priority: number;
41
+ mutationProtection: 'ENABLED' | 'DISABLED';
42
+ status: 'COMPLETE' | 'CREATING' | 'UPDATING' | 'DELETING';
43
+ }
44
+ export interface FirewallRuleGroup {
45
+ id: string;
46
+ name: string;
47
+ rules: FirewallRule[];
48
+ shareStatus: 'NOT_SHARED' | 'SHARED_WITH_ME' | 'SHARED_BY_ME';
49
+ }
50
+ export interface FirewallRule {
51
+ id: string;
52
+ name: string;
53
+ priority: number;
54
+ action: 'ALLOW' | 'BLOCK' | 'ALERT';
55
+ blockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE';
56
+ blockOverrideDomain?: string;
57
+ blockOverrideTTL?: number;
58
+ firewallDomainListId: string;
59
+ }
60
+ export interface FirewallDomainList {
61
+ id: string;
62
+ name: string;
63
+ domains: string[];
64
+ status: 'COMPLETE' | 'CREATING' | 'UPDATING' | 'DELETING';
65
+ }
66
+ /**
67
+ * Route53 Resolver manager
68
+ */
69
+ export declare class Route53ResolverManager {
70
+ private endpoints;
71
+ private rules;
72
+ private firewalls;
73
+ private ruleGroups;
74
+ private domainLists;
75
+ private endpointCounter;
76
+ private ruleCounter;
77
+ private firewallCounter;
78
+ private ruleGroupCounter;
79
+ private domainListCounter;
80
+ /**
81
+ * Create resolver endpoint
82
+ */
83
+ createResolverEndpoint(endpoint: Omit<ResolverEndpoint, 'id' | 'status'>): ResolverEndpoint;
84
+ /**
85
+ * Create inbound endpoint
86
+ */
87
+ createInboundEndpoint(options: {
88
+ name: string;
89
+ subnetIds: string[];
90
+ securityGroupIds: string[];
91
+ }): ResolverEndpoint;
92
+ /**
93
+ * Create outbound endpoint
94
+ */
95
+ createOutboundEndpoint(options: {
96
+ name: string;
97
+ subnetIds: string[];
98
+ securityGroupIds: string[];
99
+ }): ResolverEndpoint;
100
+ /**
101
+ * Create resolver rule
102
+ */
103
+ createResolverRule(rule: Omit<ResolverRule, 'id' | 'status'>): ResolverRule;
104
+ /**
105
+ * Create forward rule
106
+ */
107
+ createForwardRule(options: {
108
+ name: string;
109
+ domainName: string;
110
+ targetIps: TargetIP[];
111
+ resolverEndpointId: string;
112
+ }): ResolverRule;
113
+ /**
114
+ * Create system rule
115
+ */
116
+ createSystemRule(options: {
117
+ name: string;
118
+ domainName: string;
119
+ }): ResolverRule;
120
+ /**
121
+ * Create firewall domain list
122
+ */
123
+ createFirewallDomainList(options: {
124
+ name: string;
125
+ domains: string[];
126
+ }): FirewallDomainList;
127
+ /**
128
+ * Create firewall rule group
129
+ */
130
+ createFirewallRuleGroup(options: {
131
+ name: string;
132
+ rules: Omit<FirewallRule, 'id'>[];
133
+ }): FirewallRuleGroup;
134
+ /**
135
+ * Create block rule
136
+ */
137
+ createBlockRule(options: {
138
+ name: string;
139
+ priority: number;
140
+ domainListId: string;
141
+ blockResponse?: 'NODATA' | 'NXDOMAIN' | 'OVERRIDE';
142
+ blockOverrideDomain?: string;
143
+ }): FirewallRuleGroup;
144
+ /**
145
+ * Create allow rule
146
+ */
147
+ createAllowRule(options: {
148
+ name: string;
149
+ priority: number;
150
+ domainListId: string;
151
+ }): FirewallRuleGroup;
152
+ /**
153
+ * Create DNS firewall
154
+ */
155
+ createDNSFirewall(options: {
156
+ name: string;
157
+ vpcId: string;
158
+ ruleGroupAssociations: Array<{
159
+ firewallRuleGroupId: string;
160
+ priority: number;
161
+ mutationProtection?: 'ENABLED' | 'DISABLED';
162
+ }>;
163
+ }): DNSFirewall;
164
+ /**
165
+ * Create malware protection firewall
166
+ */
167
+ createMalwareProtectionFirewall(options: {
168
+ name: string;
169
+ vpcId: string;
170
+ maliciousDomains: string[];
171
+ }): DNSFirewall;
172
+ /**
173
+ * Get resolver endpoint
174
+ */
175
+ getEndpoint(id: string): ResolverEndpoint | undefined;
176
+ /**
177
+ * List resolver endpoints
178
+ */
179
+ listEndpoints(direction?: 'INBOUND' | 'OUTBOUND'): ResolverEndpoint[];
180
+ /**
181
+ * Get resolver rule
182
+ */
183
+ getRule(id: string): ResolverRule | undefined;
184
+ /**
185
+ * List resolver rules
186
+ */
187
+ listRules(): ResolverRule[];
188
+ /**
189
+ * Get firewall
190
+ */
191
+ getFirewall(id: string): DNSFirewall | undefined;
192
+ /**
193
+ * List firewalls
194
+ */
195
+ listFirewalls(): DNSFirewall[];
196
+ /**
197
+ * Generate CloudFormation for resolver endpoint
198
+ */
199
+ generateResolverEndpointCF(endpoint: ResolverEndpoint): any;
200
+ /**
201
+ * Generate CloudFormation for resolver rule
202
+ */
203
+ generateResolverRuleCF(rule: ResolverRule): any;
204
+ /**
205
+ * Generate CloudFormation for firewall rule group
206
+ */
207
+ generateFirewallRuleGroupCF(ruleGroup: FirewallRuleGroup): any;
208
+ /**
209
+ * Clear all data
210
+ */
211
+ clear(): void;
212
+ }
213
+ /**
214
+ * Global Route53 Resolver manager instance
215
+ */
216
+ export declare const route53ResolverManager: Route53ResolverManager;
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Route53 Advanced Routing
3
+ * Health-based, geolocation, weighted, failover, and latency-based routing
4
+ */
5
+ export interface RoutingPolicy {
6
+ id: string;
7
+ name: string;
8
+ type: 'simple' | 'weighted' | 'latency' | 'failover' | 'geolocation' | 'geoproximity' | 'multivalue';
9
+ recordSetId?: string;
10
+ }
11
+ export interface WeightedRoutingPolicy extends RoutingPolicy {
12
+ type: 'weighted';
13
+ weight: number;
14
+ setIdentifier: string;
15
+ healthCheckId?: string;
16
+ }
17
+ export interface LatencyRoutingPolicy extends RoutingPolicy {
18
+ type: 'latency';
19
+ region: string;
20
+ setIdentifier: string;
21
+ healthCheckId?: string;
22
+ }
23
+ export interface FailoverRoutingPolicy extends RoutingPolicy {
24
+ type: 'failover';
25
+ failoverType: 'PRIMARY' | 'SECONDARY';
26
+ setIdentifier: string;
27
+ healthCheckId: string;
28
+ }
29
+ export interface GeolocationRoutingPolicy extends RoutingPolicy {
30
+ type: 'geolocation';
31
+ continent?: string;
32
+ country?: string;
33
+ subdivision?: string;
34
+ setIdentifier: string;
35
+ healthCheckId?: string;
36
+ }
37
+ export interface GeoproximityRoutingPolicy extends RoutingPolicy {
38
+ type: 'geoproximity';
39
+ coordinates?: {
40
+ latitude: number;
41
+ longitude: number;
42
+ };
43
+ awsRegion?: string;
44
+ bias?: number;
45
+ setIdentifier: string;
46
+ healthCheckId?: string;
47
+ }
48
+ export interface HealthCheck {
49
+ id: string;
50
+ name: string;
51
+ type: 'http' | 'https' | 'tcp' | 'calculated' | 'cloudwatch_metric';
52
+ resourcePath?: string;
53
+ fullyQualifiedDomainName?: string;
54
+ ipAddress?: string;
55
+ port?: number;
56
+ requestInterval: number;
57
+ failureThreshold: number;
58
+ healthCheckStatus: 'Healthy' | 'Unhealthy' | 'Unknown';
59
+ measureLatency?: boolean;
60
+ enableSNI?: boolean;
61
+ }
62
+ export interface CalculatedHealthCheck extends HealthCheck {
63
+ type: 'calculated';
64
+ childHealthChecks: string[];
65
+ healthThreshold: number;
66
+ }
67
+ export interface TrafficPolicy {
68
+ id: string;
69
+ name: string;
70
+ version: number;
71
+ document: TrafficPolicyDocument;
72
+ }
73
+ export interface TrafficPolicyDocument {
74
+ recordType: 'A' | 'AAAA' | 'CNAME';
75
+ startRule: string;
76
+ endpoints: Record<string, TrafficPolicyEndpoint>;
77
+ rules: Record<string, TrafficPolicyRule>;
78
+ }
79
+ export interface TrafficPolicyEndpoint {
80
+ type: 'value' | 'cloudfront' | 'elastic_load_balancer' | 's3_website';
81
+ value?: string;
82
+ region?: string;
83
+ }
84
+ export interface TrafficPolicyRule {
85
+ ruleType: 'failover' | 'geoproximity' | 'latency' | 'weighted' | 'multivalue';
86
+ primary?: string;
87
+ secondary?: string;
88
+ locations?: Array<{
89
+ endpointReference: string;
90
+ region?: string;
91
+ latitude?: number;
92
+ longitude?: number;
93
+ bias?: number;
94
+ }>;
95
+ items?: Array<{
96
+ endpointReference: string;
97
+ weight?: number;
98
+ }>;
99
+ }
100
+ /**
101
+ * Route53 routing policy manager
102
+ */
103
+ export declare class Route53RoutingManager {
104
+ private policies;
105
+ private healthChecks;
106
+ private trafficPolicies;
107
+ private policyCounter;
108
+ private healthCheckCounter;
109
+ private trafficPolicyCounter;
110
+ /**
111
+ * Create weighted routing policy
112
+ */
113
+ createWeightedPolicy(options: {
114
+ name: string;
115
+ weight: number;
116
+ setIdentifier: string;
117
+ healthCheckId?: string;
118
+ }): WeightedRoutingPolicy;
119
+ /**
120
+ * Create latency routing policy
121
+ */
122
+ createLatencyPolicy(options: {
123
+ name: string;
124
+ region: string;
125
+ setIdentifier: string;
126
+ healthCheckId?: string;
127
+ }): LatencyRoutingPolicy;
128
+ /**
129
+ * Create failover routing policy
130
+ */
131
+ createFailoverPolicy(options: {
132
+ name: string;
133
+ failoverType: 'PRIMARY' | 'SECONDARY';
134
+ setIdentifier: string;
135
+ healthCheckId: string;
136
+ }): FailoverRoutingPolicy;
137
+ /**
138
+ * Create geolocation routing policy
139
+ */
140
+ createGeolocationPolicy(options: {
141
+ name: string;
142
+ continent?: string;
143
+ country?: string;
144
+ subdivision?: string;
145
+ setIdentifier: string;
146
+ healthCheckId?: string;
147
+ }): GeolocationRoutingPolicy;
148
+ /**
149
+ * Create geoproximity routing policy
150
+ */
151
+ createGeoproximityPolicy(options: {
152
+ name: string;
153
+ coordinates?: {
154
+ latitude: number;
155
+ longitude: number;
156
+ };
157
+ awsRegion?: string;
158
+ bias?: number;
159
+ setIdentifier: string;
160
+ healthCheckId?: string;
161
+ }): GeoproximityRoutingPolicy;
162
+ /**
163
+ * Create HTTP health check
164
+ */
165
+ createHTTPHealthCheck(options: {
166
+ name: string;
167
+ resourcePath: string;
168
+ fullyQualifiedDomainName?: string;
169
+ ipAddress?: string;
170
+ port?: number;
171
+ requestInterval?: number;
172
+ failureThreshold?: number;
173
+ enableSNI?: boolean;
174
+ }): HealthCheck;
175
+ /**
176
+ * Create TCP health check
177
+ */
178
+ createTCPHealthCheck(options: {
179
+ name: string;
180
+ ipAddress: string;
181
+ port: number;
182
+ requestInterval?: number;
183
+ failureThreshold?: number;
184
+ }): HealthCheck;
185
+ /**
186
+ * Create calculated health check
187
+ */
188
+ createCalculatedHealthCheck(options: {
189
+ name: string;
190
+ childHealthChecks: string[];
191
+ healthThreshold: number;
192
+ }): CalculatedHealthCheck;
193
+ /**
194
+ * Create traffic policy
195
+ */
196
+ createTrafficPolicy(policy: Omit<TrafficPolicy, 'id' | 'version'>): TrafficPolicy;
197
+ /**
198
+ * Create failover traffic policy
199
+ */
200
+ createFailoverTrafficPolicy(options: {
201
+ name: string;
202
+ primaryEndpoint: string;
203
+ secondaryEndpoint: string;
204
+ recordType?: 'A' | 'AAAA' | 'CNAME';
205
+ }): TrafficPolicy;
206
+ /**
207
+ * Create geoproximity traffic policy
208
+ */
209
+ createGeoproximityTrafficPolicy(options: {
210
+ name: string;
211
+ locations: Array<{
212
+ endpoint: string;
213
+ region?: string;
214
+ latitude?: number;
215
+ longitude?: number;
216
+ bias?: number;
217
+ }>;
218
+ }): TrafficPolicy;
219
+ /**
220
+ * Get routing policy
221
+ */
222
+ getPolicy(id: string): RoutingPolicy | undefined;
223
+ /**
224
+ * List routing policies
225
+ */
226
+ listPolicies(): RoutingPolicy[];
227
+ /**
228
+ * Get health check
229
+ */
230
+ getHealthCheck(id: string): HealthCheck | undefined;
231
+ /**
232
+ * List health checks
233
+ */
234
+ listHealthChecks(): HealthCheck[];
235
+ /**
236
+ * Get health check status
237
+ */
238
+ getHealthCheckStatus(id: string): 'Healthy' | 'Unhealthy' | 'Unknown';
239
+ /**
240
+ * Generate CloudFormation for health check
241
+ */
242
+ generateHealthCheckCF(healthCheck: HealthCheck): any;
243
+ /**
244
+ * Generate CloudFormation for weighted record set
245
+ */
246
+ generateWeightedRecordSetCF(options: {
247
+ hostedZoneId: string;
248
+ name: string;
249
+ type: 'A' | 'AAAA' | 'CNAME';
250
+ ttl: number;
251
+ resourceRecords: string[];
252
+ weight: number;
253
+ setIdentifier: string;
254
+ healthCheckId?: string;
255
+ }): any;
256
+ /**
257
+ * Generate CloudFormation for failover record set
258
+ */
259
+ generateFailoverRecordSetCF(options: {
260
+ hostedZoneId: string;
261
+ name: string;
262
+ type: 'A' | 'AAAA' | 'CNAME';
263
+ ttl: number;
264
+ resourceRecords: string[];
265
+ failover: 'PRIMARY' | 'SECONDARY';
266
+ setIdentifier: string;
267
+ healthCheckId?: string;
268
+ }): any;
269
+ /**
270
+ * Clear all data
271
+ */
272
+ clear(): void;
273
+ }
274
+ /**
275
+ * Global Route53 routing manager instance
276
+ */
277
+ export declare const route53RoutingManager: Route53RoutingManager;