@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.
- 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,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,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;
|