@stacksjs/ts-cloud 0.2.3 → 0.2.6
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/aws/acm.d.ts +215 -0
- package/dist/aws/application-autoscaling.d.ts +345 -0
- package/dist/aws/bedrock.d.ts +2672 -0
- package/dist/aws/client.d.ts +181 -0
- package/dist/aws/cloudformation.d.ts +187 -0
- package/dist/aws/cloudfront.d.ts +416 -0
- package/dist/aws/cloudwatch-logs.d.ts +70 -0
- package/dist/aws/comprehend.d.ts +616 -0
- package/dist/aws/connect.d.ts +533 -0
- package/dist/aws/deploy-imap.d.ts +26 -0
- package/dist/aws/dynamodb.d.ts +270 -0
- package/dist/aws/ec2.d.ts +545 -0
- package/dist/aws/ecr.d.ts +240 -0
- package/dist/aws/ecs.d.ts +267 -0
- package/dist/aws/efs.d.ts +36 -0
- package/dist/aws/elasticache.d.ts +112 -0
- package/dist/aws/elbv2.d.ts +389 -0
- package/dist/aws/email.d.ts +260 -0
- package/dist/aws/eventbridge.d.ts +197 -0
- package/dist/aws/iam.d.ts +1013 -0
- package/dist/aws/imap-server.d.ts +298 -0
- package/dist/aws/index.d.ts +53 -0
- package/dist/aws/kendra.d.ts +831 -0
- package/dist/aws/lambda.d.ts +319 -0
- package/dist/aws/opensearch.d.ts +121 -0
- package/dist/aws/personalize.d.ts +586 -0
- package/dist/aws/polly.d.ts +243 -0
- package/dist/aws/rds.d.ts +346 -0
- package/dist/aws/rekognition.d.ts +691 -0
- package/dist/aws/route53-domains.d.ts +161 -0
- package/dist/aws/route53.d.ts +330 -0
- package/dist/aws/s3.d.ts +535 -0
- package/dist/aws/scheduler.d.ts +224 -0
- package/dist/aws/secrets-manager.d.ts +267 -0
- package/dist/aws/ses.d.ts +441 -0
- package/dist/aws/setup-phone.d.ts +1 -0
- package/dist/aws/setup-sms.d.ts +116 -0
- package/dist/aws/sms.d.ts +477 -0
- package/dist/aws/smtp-server.d.ts +108 -0
- package/dist/aws/sns.d.ts +224 -0
- package/dist/aws/sqs.d.ts +107 -0
- package/dist/aws/ssm.d.ts +311 -0
- package/dist/aws/sts.d.ts +21 -0
- package/dist/aws/support.d.ts +139 -0
- package/dist/aws/test-imap.d.ts +15 -0
- package/dist/aws/textract.d.ts +477 -0
- package/dist/aws/transcribe.d.ts +79 -0
- package/dist/aws/translate.d.ts +424 -0
- package/dist/aws/voice.d.ts +361 -0
- package/dist/bin/cli.js +4480 -804
- package/dist/config.d.ts +5 -0
- package/dist/deploy/index.d.ts +6 -0
- package/dist/deploy/static-site-external-dns.d.ts +70 -0
- package/dist/deploy/static-site.d.ts +110 -0
- package/dist/dns/cloudflare.d.ts +74 -0
- package/dist/dns/godaddy.d.ts +63 -0
- package/dist/dns/index.d.ts +67 -0
- package/dist/dns/porkbun.d.ts +43 -0
- package/dist/dns/route53-adapter.d.ts +67 -0
- package/dist/dns/types.d.ts +100 -0
- package/dist/dns/validator.d.ts +105 -0
- package/dist/generators/index.d.ts +4 -0
- package/dist/generators/infrastructure.d.ts +115 -0
- package/dist/index.d.ts +9 -165
- package/dist/index.js +4971 -6013
- package/dist/push/apns.d.ts +140 -0
- package/dist/push/fcm.d.ts +205 -0
- package/dist/push/index.d.ts +44 -0
- package/dist/security/pre-deploy-scanner.d.ts +97 -0
- package/dist/ssl/acme-client.d.ts +133 -0
- package/dist/ssl/index.d.ts +6 -0
- package/dist/ssl/letsencrypt.d.ts +96 -0
- package/dist/utils/cli.d.ts +121 -0
- package/dist/validation/index.d.ts +4 -0
- package/dist/validation/template.d.ts +27 -0
- package/package.json +6 -6
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route53 Domains Client - Domain registration management without AWS SDK
|
|
3
|
+
* Uses direct AWS API calls with Signature V4
|
|
4
|
+
*/
|
|
5
|
+
export interface Nameserver {
|
|
6
|
+
Name: string;
|
|
7
|
+
GlueIps?: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface DomainDetail {
|
|
10
|
+
DomainName: string;
|
|
11
|
+
Nameservers?: Nameserver[];
|
|
12
|
+
AutoRenew?: boolean;
|
|
13
|
+
AdminContact?: ContactDetail;
|
|
14
|
+
RegistrantContact?: ContactDetail;
|
|
15
|
+
TechContact?: ContactDetail;
|
|
16
|
+
AdminPrivacy?: boolean;
|
|
17
|
+
RegistrantPrivacy?: boolean;
|
|
18
|
+
TechPrivacy?: boolean;
|
|
19
|
+
RegistrarName?: string;
|
|
20
|
+
WhoIsServer?: string;
|
|
21
|
+
RegistrarUrl?: string;
|
|
22
|
+
AbuseContactEmail?: string;
|
|
23
|
+
AbuseContactPhone?: string;
|
|
24
|
+
RegistryDomainId?: string;
|
|
25
|
+
CreationDate?: string;
|
|
26
|
+
UpdatedDate?: string;
|
|
27
|
+
ExpirationDate?: string;
|
|
28
|
+
Reseller?: string;
|
|
29
|
+
DnsSec?: string;
|
|
30
|
+
StatusList?: string[];
|
|
31
|
+
}
|
|
32
|
+
export type ContactType = 'PERSON' | 'COMPANY' | 'ASSOCIATION' | 'PUBLIC_BODY' | 'RESELLER';
|
|
33
|
+
export type CountryCode = 'AC' | 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AN' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TP' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW';
|
|
34
|
+
export interface ContactDetail {
|
|
35
|
+
FirstName?: string;
|
|
36
|
+
LastName?: string;
|
|
37
|
+
ContactType?: ContactType;
|
|
38
|
+
OrganizationName?: string;
|
|
39
|
+
AddressLine1?: string;
|
|
40
|
+
AddressLine2?: string;
|
|
41
|
+
City?: string;
|
|
42
|
+
State?: string;
|
|
43
|
+
CountryCode?: CountryCode;
|
|
44
|
+
ZipCode?: string;
|
|
45
|
+
PhoneNumber?: string;
|
|
46
|
+
Email?: string;
|
|
47
|
+
Fax?: string;
|
|
48
|
+
ExtraParams?: {
|
|
49
|
+
Name: string;
|
|
50
|
+
Value: string;
|
|
51
|
+
}[];
|
|
52
|
+
}
|
|
53
|
+
export interface UpdateDomainNameserversResult {
|
|
54
|
+
OperationId: string;
|
|
55
|
+
}
|
|
56
|
+
export interface GetDomainDetailResult extends DomainDetail {
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Route53 Domains Client for domain registration management
|
|
60
|
+
* Note: Route53 Domains API is only available in us-east-1
|
|
61
|
+
*/
|
|
62
|
+
export declare class Route53DomainsClient {
|
|
63
|
+
private client;
|
|
64
|
+
private region;
|
|
65
|
+
constructor();
|
|
66
|
+
/**
|
|
67
|
+
* Get details about a specific domain
|
|
68
|
+
*/
|
|
69
|
+
getDomainDetail(params: {
|
|
70
|
+
DomainName: string;
|
|
71
|
+
}): Promise<GetDomainDetailResult>;
|
|
72
|
+
/**
|
|
73
|
+
* Update the nameservers for a domain
|
|
74
|
+
*/
|
|
75
|
+
updateDomainNameservers(params: {
|
|
76
|
+
DomainName: string;
|
|
77
|
+
Nameservers: {
|
|
78
|
+
Name: string;
|
|
79
|
+
GlueIps?: string[];
|
|
80
|
+
}[];
|
|
81
|
+
}): Promise<UpdateDomainNameserversResult>;
|
|
82
|
+
/**
|
|
83
|
+
* List domains registered with Route53
|
|
84
|
+
*/
|
|
85
|
+
listDomains(params?: {
|
|
86
|
+
Marker?: string;
|
|
87
|
+
MaxItems?: number;
|
|
88
|
+
SortCondition?: {
|
|
89
|
+
Name: 'DomainName' | 'Expiry';
|
|
90
|
+
SortOrder: 'ASC' | 'DESC';
|
|
91
|
+
};
|
|
92
|
+
}): Promise<{
|
|
93
|
+
Domains: {
|
|
94
|
+
DomainName: string;
|
|
95
|
+
AutoRenew?: boolean;
|
|
96
|
+
TransferLock?: boolean;
|
|
97
|
+
Expiry?: string;
|
|
98
|
+
}[];
|
|
99
|
+
NextPageMarker?: string;
|
|
100
|
+
}>;
|
|
101
|
+
/**
|
|
102
|
+
* Check domain availability
|
|
103
|
+
*/
|
|
104
|
+
checkDomainAvailability(params: {
|
|
105
|
+
DomainName: string;
|
|
106
|
+
}): Promise<{
|
|
107
|
+
Availability: 'AVAILABLE' | 'AVAILABLE_RESERVED' | 'AVAILABLE_PREORDER' | 'UNAVAILABLE' | 'UNAVAILABLE_PREMIUM' | 'UNAVAILABLE_RESTRICTED' | 'RESERVED' | 'DONT_KNOW';
|
|
108
|
+
}>;
|
|
109
|
+
/**
|
|
110
|
+
* Get domain pricing information
|
|
111
|
+
*/
|
|
112
|
+
getDomainPrice(params: {
|
|
113
|
+
DomainName: string;
|
|
114
|
+
}): Promise<{
|
|
115
|
+
RegistrationPrice?: {
|
|
116
|
+
Price: number;
|
|
117
|
+
Currency: string;
|
|
118
|
+
};
|
|
119
|
+
RenewalPrice?: {
|
|
120
|
+
Price: number;
|
|
121
|
+
Currency: string;
|
|
122
|
+
};
|
|
123
|
+
TransferPrice?: {
|
|
124
|
+
Price: number;
|
|
125
|
+
Currency: string;
|
|
126
|
+
};
|
|
127
|
+
}>;
|
|
128
|
+
/**
|
|
129
|
+
* Register a new domain
|
|
130
|
+
*/
|
|
131
|
+
registerDomain(params: {
|
|
132
|
+
DomainName: string;
|
|
133
|
+
DurationInYears: number;
|
|
134
|
+
AutoRenew?: boolean;
|
|
135
|
+
AdminContact: ContactDetail;
|
|
136
|
+
RegistrantContact: ContactDetail;
|
|
137
|
+
TechContact: ContactDetail;
|
|
138
|
+
PrivacyProtectAdminContact?: boolean;
|
|
139
|
+
PrivacyProtectRegistrantContact?: boolean;
|
|
140
|
+
PrivacyProtectTechContact?: boolean;
|
|
141
|
+
}): Promise<{
|
|
142
|
+
OperationId: string;
|
|
143
|
+
}>;
|
|
144
|
+
/**
|
|
145
|
+
* Get operation details (for tracking domain registration status)
|
|
146
|
+
*/
|
|
147
|
+
getOperationDetail(params: {
|
|
148
|
+
OperationId: string;
|
|
149
|
+
}): Promise<{
|
|
150
|
+
OperationId: string;
|
|
151
|
+
Status: 'SUBMITTED' | 'IN_PROGRESS' | 'ERROR' | 'SUCCESSFUL' | 'FAILED';
|
|
152
|
+
Message?: string;
|
|
153
|
+
DomainName?: string;
|
|
154
|
+
Type?: string;
|
|
155
|
+
SubmittedDate?: string;
|
|
156
|
+
}>;
|
|
157
|
+
/**
|
|
158
|
+
* Parse domain detail response
|
|
159
|
+
*/
|
|
160
|
+
private parseDomainDetail;
|
|
161
|
+
}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route53 Client - DNS management without AWS SDK
|
|
3
|
+
* Uses direct AWS API calls with Signature V4
|
|
4
|
+
*/
|
|
5
|
+
export interface HostedZone {
|
|
6
|
+
Id: string;
|
|
7
|
+
Name: string;
|
|
8
|
+
CallerReference?: string;
|
|
9
|
+
Config?: {
|
|
10
|
+
Comment?: string;
|
|
11
|
+
PrivateZone?: boolean;
|
|
12
|
+
};
|
|
13
|
+
ResourceRecordSetCount?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ResourceRecordSet {
|
|
16
|
+
Name: string;
|
|
17
|
+
Type: string;
|
|
18
|
+
TTL?: number;
|
|
19
|
+
ResourceRecords?: {
|
|
20
|
+
Value: string;
|
|
21
|
+
}[];
|
|
22
|
+
AliasTarget?: {
|
|
23
|
+
HostedZoneId: string;
|
|
24
|
+
DNSName: string;
|
|
25
|
+
EvaluateTargetHealth: boolean;
|
|
26
|
+
};
|
|
27
|
+
SetIdentifier?: string;
|
|
28
|
+
Weight?: number;
|
|
29
|
+
Region?: string;
|
|
30
|
+
GeoLocation?: {
|
|
31
|
+
ContinentCode?: string;
|
|
32
|
+
CountryCode?: string;
|
|
33
|
+
SubdivisionCode?: string;
|
|
34
|
+
};
|
|
35
|
+
Failover?: 'PRIMARY' | 'SECONDARY';
|
|
36
|
+
HealthCheckId?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface DelegationSet {
|
|
39
|
+
Id?: string;
|
|
40
|
+
CallerReference?: string;
|
|
41
|
+
NameServers: string[];
|
|
42
|
+
}
|
|
43
|
+
export interface CreateHostedZoneResult {
|
|
44
|
+
HostedZone: HostedZone;
|
|
45
|
+
ChangeInfo: {
|
|
46
|
+
Id: string;
|
|
47
|
+
Status: string;
|
|
48
|
+
SubmittedAt: string;
|
|
49
|
+
};
|
|
50
|
+
DelegationSet: DelegationSet;
|
|
51
|
+
Location: string;
|
|
52
|
+
}
|
|
53
|
+
export interface ListHostedZonesResult {
|
|
54
|
+
HostedZones: HostedZone[];
|
|
55
|
+
IsTruncated: boolean;
|
|
56
|
+
MaxItems: string;
|
|
57
|
+
Marker?: string;
|
|
58
|
+
NextMarker?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface GetHostedZoneResult {
|
|
61
|
+
HostedZone: HostedZone;
|
|
62
|
+
DelegationSet: DelegationSet;
|
|
63
|
+
VPCs?: {
|
|
64
|
+
VPCId: string;
|
|
65
|
+
VPCRegion: string;
|
|
66
|
+
}[];
|
|
67
|
+
}
|
|
68
|
+
export interface ListResourceRecordSetsResult {
|
|
69
|
+
ResourceRecordSets: ResourceRecordSet[];
|
|
70
|
+
IsTruncated: boolean;
|
|
71
|
+
MaxItems: string;
|
|
72
|
+
NextRecordName?: string;
|
|
73
|
+
NextRecordType?: string;
|
|
74
|
+
NextRecordIdentifier?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface ChangeResourceRecordSetsResult {
|
|
77
|
+
ChangeInfo: {
|
|
78
|
+
Id: string;
|
|
79
|
+
Status: string;
|
|
80
|
+
SubmittedAt: string;
|
|
81
|
+
Comment?: string;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export interface Change {
|
|
85
|
+
Action: 'CREATE' | 'DELETE' | 'UPSERT';
|
|
86
|
+
ResourceRecordSet: ResourceRecordSet;
|
|
87
|
+
}
|
|
88
|
+
export interface ChangeBatch {
|
|
89
|
+
Comment?: string;
|
|
90
|
+
Changes: Change[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Route53 Client for DNS management
|
|
94
|
+
*/
|
|
95
|
+
export declare class Route53Client {
|
|
96
|
+
private client;
|
|
97
|
+
private region;
|
|
98
|
+
constructor(region?: string);
|
|
99
|
+
/**
|
|
100
|
+
* Create a new hosted zone
|
|
101
|
+
*/
|
|
102
|
+
createHostedZone(params: {
|
|
103
|
+
Name: string;
|
|
104
|
+
CallerReference?: string;
|
|
105
|
+
HostedZoneConfig?: {
|
|
106
|
+
Comment?: string;
|
|
107
|
+
PrivateZone?: boolean;
|
|
108
|
+
};
|
|
109
|
+
VPC?: {
|
|
110
|
+
VPCRegion: string;
|
|
111
|
+
VPCId: string;
|
|
112
|
+
};
|
|
113
|
+
DelegationSetId?: string;
|
|
114
|
+
}): Promise<CreateHostedZoneResult>;
|
|
115
|
+
/**
|
|
116
|
+
* List hosted zones
|
|
117
|
+
*/
|
|
118
|
+
listHostedZones(params?: {
|
|
119
|
+
Marker?: string;
|
|
120
|
+
MaxItems?: string;
|
|
121
|
+
}): Promise<ListHostedZonesResult>;
|
|
122
|
+
/**
|
|
123
|
+
* List hosted zones by name (more efficient for finding specific zone)
|
|
124
|
+
*/
|
|
125
|
+
listHostedZonesByName(params?: {
|
|
126
|
+
DNSName?: string;
|
|
127
|
+
HostedZoneId?: string;
|
|
128
|
+
MaxItems?: string;
|
|
129
|
+
}): Promise<ListHostedZonesResult>;
|
|
130
|
+
/**
|
|
131
|
+
* Get a hosted zone
|
|
132
|
+
*/
|
|
133
|
+
getHostedZone(params: {
|
|
134
|
+
Id: string;
|
|
135
|
+
}): Promise<GetHostedZoneResult>;
|
|
136
|
+
/**
|
|
137
|
+
* Delete a hosted zone
|
|
138
|
+
*/
|
|
139
|
+
deleteHostedZone(params: {
|
|
140
|
+
Id: string;
|
|
141
|
+
}): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* List resource record sets in a hosted zone
|
|
144
|
+
*/
|
|
145
|
+
listResourceRecordSets(params: {
|
|
146
|
+
HostedZoneId: string;
|
|
147
|
+
StartRecordName?: string;
|
|
148
|
+
StartRecordType?: string;
|
|
149
|
+
StartRecordIdentifier?: string;
|
|
150
|
+
MaxItems?: string;
|
|
151
|
+
}): Promise<ListResourceRecordSetsResult>;
|
|
152
|
+
/**
|
|
153
|
+
* Change resource record sets (create, delete, or upsert)
|
|
154
|
+
*/
|
|
155
|
+
changeResourceRecordSets(params: {
|
|
156
|
+
HostedZoneId: string;
|
|
157
|
+
ChangeBatch: ChangeBatch;
|
|
158
|
+
}): Promise<ChangeResourceRecordSetsResult>;
|
|
159
|
+
/**
|
|
160
|
+
* Escape XML special characters
|
|
161
|
+
*/
|
|
162
|
+
private escapeXml;
|
|
163
|
+
/**
|
|
164
|
+
* Parse CreateHostedZone response
|
|
165
|
+
*/
|
|
166
|
+
private parseCreateHostedZoneResponse;
|
|
167
|
+
/**
|
|
168
|
+
* Parse ListHostedZones response
|
|
169
|
+
*/
|
|
170
|
+
private parseListHostedZonesResponse;
|
|
171
|
+
/**
|
|
172
|
+
* Parse GetHostedZone response
|
|
173
|
+
*/
|
|
174
|
+
private parseGetHostedZoneResponse;
|
|
175
|
+
/**
|
|
176
|
+
* Parse ListResourceRecordSets response
|
|
177
|
+
*/
|
|
178
|
+
private parseListResourceRecordSetsResponse;
|
|
179
|
+
/**
|
|
180
|
+
* Parse ChangeResourceRecordSets response
|
|
181
|
+
*/
|
|
182
|
+
private parseChangeResourceRecordSetsResponse;
|
|
183
|
+
/**
|
|
184
|
+
* Parse a hosted zone object
|
|
185
|
+
*/
|
|
186
|
+
private parseHostedZone;
|
|
187
|
+
/**
|
|
188
|
+
* Parse a delegation set object
|
|
189
|
+
*/
|
|
190
|
+
private parseDelegationSet;
|
|
191
|
+
/**
|
|
192
|
+
* Parse a resource record set object
|
|
193
|
+
*/
|
|
194
|
+
private parseResourceRecordSet;
|
|
195
|
+
/**
|
|
196
|
+
* Find hosted zone by domain name
|
|
197
|
+
*/
|
|
198
|
+
findHostedZoneByName(domainName: string): Promise<HostedZone | null>;
|
|
199
|
+
/**
|
|
200
|
+
* Create an A record
|
|
201
|
+
*/
|
|
202
|
+
createARecord(params: {
|
|
203
|
+
HostedZoneId: string;
|
|
204
|
+
Name: string;
|
|
205
|
+
Value: string | string[];
|
|
206
|
+
TTL?: number;
|
|
207
|
+
}): Promise<ChangeResourceRecordSetsResult>;
|
|
208
|
+
/**
|
|
209
|
+
* Create a CNAME record
|
|
210
|
+
*/
|
|
211
|
+
createCnameRecord(params: {
|
|
212
|
+
HostedZoneId: string;
|
|
213
|
+
Name: string;
|
|
214
|
+
Value: string;
|
|
215
|
+
TTL?: number;
|
|
216
|
+
}): Promise<ChangeResourceRecordSetsResult>;
|
|
217
|
+
/**
|
|
218
|
+
* Create an alias record (for CloudFront, ALB, etc.)
|
|
219
|
+
*/
|
|
220
|
+
createAliasRecord(params: {
|
|
221
|
+
HostedZoneId: string;
|
|
222
|
+
Name: string;
|
|
223
|
+
TargetHostedZoneId: string;
|
|
224
|
+
TargetDNSName: string;
|
|
225
|
+
EvaluateTargetHealth?: boolean;
|
|
226
|
+
Type?: 'A' | 'AAAA';
|
|
227
|
+
}): Promise<ChangeResourceRecordSetsResult>;
|
|
228
|
+
/**
|
|
229
|
+
* Create a TXT record
|
|
230
|
+
*/
|
|
231
|
+
createTxtRecord(params: {
|
|
232
|
+
HostedZoneId: string;
|
|
233
|
+
Name: string;
|
|
234
|
+
Value: string | string[];
|
|
235
|
+
TTL?: number;
|
|
236
|
+
}): Promise<ChangeResourceRecordSetsResult>;
|
|
237
|
+
/**
|
|
238
|
+
* Create an MX record
|
|
239
|
+
*/
|
|
240
|
+
createMxRecord(params: {
|
|
241
|
+
HostedZoneId: string;
|
|
242
|
+
Name: string;
|
|
243
|
+
Values: Array<{
|
|
244
|
+
priority: number;
|
|
245
|
+
mailServer: string;
|
|
246
|
+
}>;
|
|
247
|
+
TTL?: number;
|
|
248
|
+
}): Promise<ChangeResourceRecordSetsResult>;
|
|
249
|
+
/**
|
|
250
|
+
* Delete a record
|
|
251
|
+
*/
|
|
252
|
+
deleteRecord(params: {
|
|
253
|
+
HostedZoneId: string;
|
|
254
|
+
RecordSet: ResourceRecordSet;
|
|
255
|
+
}): Promise<ChangeResourceRecordSetsResult>;
|
|
256
|
+
/**
|
|
257
|
+
* Wait for a change to become INSYNC
|
|
258
|
+
*/
|
|
259
|
+
waitForChange(changeId: string, maxAttempts?: number, delayMs?: number): Promise<boolean>;
|
|
260
|
+
/**
|
|
261
|
+
* Find or create a hosted zone for a domain
|
|
262
|
+
* Automatically creates the zone if it doesn't exist
|
|
263
|
+
*/
|
|
264
|
+
findOrCreateHostedZone(params: {
|
|
265
|
+
domainName: string;
|
|
266
|
+
comment?: string;
|
|
267
|
+
privateZone?: boolean;
|
|
268
|
+
vpc?: {
|
|
269
|
+
VPCRegion: string;
|
|
270
|
+
VPCId: string;
|
|
271
|
+
};
|
|
272
|
+
}): Promise<{
|
|
273
|
+
hostedZone: HostedZone;
|
|
274
|
+
nameServers: string[];
|
|
275
|
+
isNew: boolean;
|
|
276
|
+
}>;
|
|
277
|
+
/**
|
|
278
|
+
* Get the root domain from a subdomain
|
|
279
|
+
* e.g., "api.example.com" -> "example.com"
|
|
280
|
+
*/
|
|
281
|
+
static getRootDomain(domain: string): string;
|
|
282
|
+
/**
|
|
283
|
+
* Find the hosted zone for a domain or its parent domain
|
|
284
|
+
* Useful when you have a subdomain and need to find the zone
|
|
285
|
+
*/
|
|
286
|
+
findHostedZoneForDomain(domain: string): Promise<HostedZone | null>;
|
|
287
|
+
/**
|
|
288
|
+
* Ensure a hosted zone exists for a domain, creating it if necessary
|
|
289
|
+
* Returns the hosted zone ID suitable for use in CloudFormation
|
|
290
|
+
*/
|
|
291
|
+
ensureHostedZone(params: {
|
|
292
|
+
domainName: string;
|
|
293
|
+
comment?: string;
|
|
294
|
+
}): Promise<{
|
|
295
|
+
hostedZoneId: string;
|
|
296
|
+
nameServers: string[];
|
|
297
|
+
isNew: boolean;
|
|
298
|
+
action: 'found' | 'created';
|
|
299
|
+
}>;
|
|
300
|
+
/**
|
|
301
|
+
* Setup DNS for a domain with automatic hosted zone creation
|
|
302
|
+
* Creates the hosted zone if needed and returns setup information
|
|
303
|
+
*/
|
|
304
|
+
setupDomainDns(params: {
|
|
305
|
+
domain: string;
|
|
306
|
+
createIfNotExists?: boolean;
|
|
307
|
+
}): Promise<{
|
|
308
|
+
success: boolean;
|
|
309
|
+
hostedZoneId: string | null;
|
|
310
|
+
nameServers: string[];
|
|
311
|
+
isNew: boolean;
|
|
312
|
+
message: string;
|
|
313
|
+
}>;
|
|
314
|
+
/**
|
|
315
|
+
* CloudFront hosted zone ID (global)
|
|
316
|
+
*/
|
|
317
|
+
static readonly CloudFrontHostedZoneId = "Z2FDTNDATAQYW2";
|
|
318
|
+
/**
|
|
319
|
+
* S3 website hosting hosted zone IDs by region
|
|
320
|
+
*/
|
|
321
|
+
static readonly S3WebsiteHostedZoneIds: Record<string, string>;
|
|
322
|
+
/**
|
|
323
|
+
* ALB hosted zone IDs by region
|
|
324
|
+
*/
|
|
325
|
+
static readonly ALBHostedZoneIds: Record<string, string>;
|
|
326
|
+
/**
|
|
327
|
+
* API Gateway hosted zone IDs by region
|
|
328
|
+
*/
|
|
329
|
+
static readonly APIGatewayHostedZoneIds: Record<string, string>;
|
|
330
|
+
}
|