@microsoft/terraform-cdk-constructs 1.7.1 → 1.9.0
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/.jsii +46476 -27231
- package/API.md +68443 -28286
- package/lib/azure-actiongroup/lib/action-group.js +1 -1
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +1 -1
- package/lib/azure-aks/lib/aks-cluster.js +1 -1
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +1 -1
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
- package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
- package/lib/azure-dnszone/lib/dns-zone.js +1 -1
- package/lib/azure-dnszone/lib/index.d.ts +1 -0
- package/lib/azure-dnszone/lib/index.js +2 -1
- package/lib/azure-dnszone/lib/records/dns-record-schemas.d.ts +68 -0
- package/lib/azure-dnszone/lib/records/dns-record-schemas.js +813 -0
- package/lib/azure-dnszone/lib/records/dns-records.d.ts +688 -0
- package/lib/azure-dnszone/lib/records/dns-records.js +924 -0
- package/lib/azure-dnszone/lib/records/index.d.ts +19 -0
- package/lib/azure-dnszone/lib/records/index.js +38 -0
- package/lib/azure-dnszone/test/dns-records.integ.d.ts +21 -0
- package/lib/azure-dnszone/test/dns-records.integ.js +321 -0
- package/lib/azure-dnszone/test/dns-records.spec.d.ts +20 -0
- package/lib/azure-dnszone/test/dns-records.spec.js +950 -0
- package/lib/azure-loganalyticsworkspace/index.d.ts +6 -0
- package/lib/azure-loganalyticsworkspace/index.js +23 -0
- package/lib/azure-loganalyticsworkspace/lib/index.d.ts +5 -0
- package/lib/azure-loganalyticsworkspace/lib/index.js +22 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.d.ts +51 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.js +255 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +301 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +213 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +9 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +71 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.d.ts +8 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +504 -0
- package/lib/azure-metricalert/lib/metric-alert.js +1 -1
- package/lib/azure-networkinterface/lib/network-interface.js +1 -1
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
- package/lib/azure-networkwatcher/index.d.ts +14 -0
- package/lib/azure-networkwatcher/index.js +31 -0
- package/lib/azure-networkwatcher/lib/index.d.ts +5 -0
- package/lib/azure-networkwatcher/lib/index.js +22 -0
- package/lib/azure-networkwatcher/lib/network-watcher-schemas.d.ts +47 -0
- package/lib/azure-networkwatcher/lib/network-watcher-schemas.js +167 -0
- package/lib/azure-networkwatcher/lib/network-watcher.d.ts +181 -0
- package/lib/azure-networkwatcher/lib/network-watcher.js +187 -0
- package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +12 -0
- package/lib/azure-networkwatcher/test/network-watcher.integ.js +84 -0
- package/lib/azure-networkwatcher/test/network-watcher.spec.d.ts +8 -0
- package/lib/azure-networkwatcher/test/network-watcher.spec.js +312 -0
- package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
- package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
- package/lib/azure-policysetdefinition/index.d.ts +10 -0
- package/lib/azure-policysetdefinition/index.js +27 -0
- package/lib/azure-policysetdefinition/lib/index.d.ts +5 -0
- package/lib/azure-policysetdefinition/lib/index.js +22 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.d.ts +50 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.js +255 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +426 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +255 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +9 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +56 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.d.ts +8 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +745 -0
- package/lib/azure-privatednszone/lib/index.d.ts +1 -0
- package/lib/azure-privatednszone/lib/index.js +2 -1
- package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +0 -2
- package/lib/azure-privatednszone/lib/private-dns-zone.js +6 -13
- package/lib/azure-privatednszone/lib/records/index.d.ts +7 -0
- package/lib/azure-privatednszone/lib/records/index.js +26 -0
- package/lib/azure-privatednszone/lib/records/private-dns-record-schemas.d.ts +52 -0
- package/lib/azure-privatednszone/lib/records/private-dns-record-schemas.js +683 -0
- package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +523 -0
- package/lib/azure-privatednszone/lib/records/private-dns-records.js +739 -0
- package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +19 -0
- package/lib/azure-privatednszone/test/private-dns-records.integ.js +245 -0
- package/lib/azure-privatednszone/test/private-dns-records.spec.d.ts +18 -0
- package/lib/azure-privatednszone/test/private-dns-records.spec.js +756 -0
- package/lib/azure-privatednszone/test/private-dns-zone.spec.js +5 -5
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
- package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
- package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
- package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
- package/lib/azure-roledefinition/lib/role-definition.js +1 -1
- package/lib/azure-storageaccount/lib/storage-account.js +1 -1
- package/lib/azure-subnet/lib/subnet.js +1 -1
- package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
- package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway-schemas.js +2 -2
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +4 -2
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +8 -5
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +109 -1
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +1 -1
- package/lib/core-azure/lib/azapi/azapi-resource.js +4 -4
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
- package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
- package/lib/index.d.ts +23 -0
- package/lib/index.js +25 -2
- package/lib/testing/index.js +2 -2
- package/lib/testing/lib/cleanup.js +1 -1
- package/lib/testing/lib/metadata.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,688 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Azure Public DNS Zone Record implementations using AzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This file provides implementations for all Public DNS Zone record types:
|
|
5
|
+
* - DnsARecord (A records with IPv4 addresses)
|
|
6
|
+
* - DnsAaaaRecord (AAAA records with IPv6 addresses)
|
|
7
|
+
* - DnsCaaRecord (CAA records for Certificate Authority Authorization) - PUBLIC ONLY
|
|
8
|
+
* - DnsCnameRecord (CNAME records)
|
|
9
|
+
* - DnsMxRecord (MX records with exchange and preference)
|
|
10
|
+
* - DnsNsRecord (NS records for Name Servers) - PUBLIC ONLY
|
|
11
|
+
* - DnsPtrRecord (PTR records)
|
|
12
|
+
* - DnsSoaRecord (SOA records)
|
|
13
|
+
* - DnsSrvRecord (SRV records with priority, weight, port, target)
|
|
14
|
+
* - DnsTxtRecord (TXT records)
|
|
15
|
+
*
|
|
16
|
+
* API Version: 2018-05-01
|
|
17
|
+
*
|
|
18
|
+
* Key differences from Private DNS:
|
|
19
|
+
* - Property casing: Public DNS uses PascalCase (ARecords, TTL vs aRecords, ttl)
|
|
20
|
+
* - CAA records: Only available in public DNS
|
|
21
|
+
* - NS records: Only available in public DNS
|
|
22
|
+
* - targetResource: Public DNS A, AAAA, and CNAME records support alias records
|
|
23
|
+
*/
|
|
24
|
+
import * as cdktf from "cdktf";
|
|
25
|
+
import { Construct } from "constructs";
|
|
26
|
+
import { AzapiResource, AzapiResourceProps } from "../../../core-azure/lib/azapi/azapi-resource";
|
|
27
|
+
import { ApiSchema } from "../../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
28
|
+
/**
|
|
29
|
+
* Base properties shared by all Public DNS record types
|
|
30
|
+
*
|
|
31
|
+
* Note: The `name` property is inherited from AzapiResourceProps.
|
|
32
|
+
* For DNS records, use @ for apex records or provide a relative name like "www" or "mail".
|
|
33
|
+
*/
|
|
34
|
+
export interface DnsRecordBaseProps extends AzapiResourceProps {
|
|
35
|
+
/**
|
|
36
|
+
* Resource ID of the parent DNS Zone
|
|
37
|
+
* @example zone.id or "/subscriptions/.../providers/Microsoft.Network/dnsZones/example.com"
|
|
38
|
+
*/
|
|
39
|
+
readonly dnsZoneId: string;
|
|
40
|
+
/**
|
|
41
|
+
* Time to Live in seconds
|
|
42
|
+
* @default 3600
|
|
43
|
+
*/
|
|
44
|
+
readonly ttl?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Metadata key-value pairs for the record set
|
|
47
|
+
*/
|
|
48
|
+
readonly metadata?: {
|
|
49
|
+
[key: string]: string;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Entry for an A record with IPv4 address
|
|
54
|
+
*/
|
|
55
|
+
export interface DnsARecordEntry {
|
|
56
|
+
/**
|
|
57
|
+
* The IPv4 address of this A record
|
|
58
|
+
* @example "20.30.40.50"
|
|
59
|
+
*/
|
|
60
|
+
readonly ipv4Address: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Properties for Public DNS A Record
|
|
64
|
+
*/
|
|
65
|
+
export interface DnsARecordProps extends DnsRecordBaseProps {
|
|
66
|
+
/**
|
|
67
|
+
* Array of A records with IPv4 addresses
|
|
68
|
+
* Either records or targetResourceId must be specified
|
|
69
|
+
*/
|
|
70
|
+
readonly records?: DnsARecordEntry[];
|
|
71
|
+
/**
|
|
72
|
+
* Reference to an Azure resource from where the IP content is taken (alias record)
|
|
73
|
+
* Either records or targetResourceId must be specified
|
|
74
|
+
* @example publicIp.id
|
|
75
|
+
*/
|
|
76
|
+
readonly targetResourceId?: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Azure Public DNS A Record implementation
|
|
80
|
+
*
|
|
81
|
+
* A records map a hostname to one or more IPv4 addresses.
|
|
82
|
+
* Supports alias records via targetResourceId for pointing to Azure resources.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // Create an A record with IP addresses:
|
|
86
|
+
* const aRecord = new DnsARecord(this, "web-a-record", {
|
|
87
|
+
* name: "www",
|
|
88
|
+
* dnsZoneId: zone.id,
|
|
89
|
+
* ttl: 300,
|
|
90
|
+
* records: [
|
|
91
|
+
* { ipv4Address: "20.30.40.50" },
|
|
92
|
+
* ],
|
|
93
|
+
* });
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* // Create an alias A record pointing to an Azure resource:
|
|
97
|
+
* const aliasRecord = new DnsARecord(this, "alias-a-record", {
|
|
98
|
+
* name: "www",
|
|
99
|
+
* dnsZoneId: zone.id,
|
|
100
|
+
* ttl: 300,
|
|
101
|
+
* targetResourceId: publicIp.id,
|
|
102
|
+
* });
|
|
103
|
+
*
|
|
104
|
+
* @stability stable
|
|
105
|
+
*/
|
|
106
|
+
export declare class DnsARecord extends AzapiResource {
|
|
107
|
+
readonly props: DnsARecordProps;
|
|
108
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
109
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
110
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
111
|
+
constructor(scope: Construct, id: string, props: DnsARecordProps);
|
|
112
|
+
protected resolveParentId(props: any): string;
|
|
113
|
+
protected defaultVersion(): string;
|
|
114
|
+
protected resourceType(): string;
|
|
115
|
+
protected apiSchema(): ApiSchema;
|
|
116
|
+
protected requiresLocation(): boolean;
|
|
117
|
+
protected supportsTags(): boolean;
|
|
118
|
+
protected createResourceBody(props: any): any;
|
|
119
|
+
/**
|
|
120
|
+
* Get the FQDN of the record
|
|
121
|
+
*/
|
|
122
|
+
get fqdn(): string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Entry for an AAAA record with IPv6 address
|
|
126
|
+
*/
|
|
127
|
+
export interface DnsAaaaRecordEntry {
|
|
128
|
+
/**
|
|
129
|
+
* The IPv6 address of this AAAA record
|
|
130
|
+
* @example "2001:db8::1"
|
|
131
|
+
*/
|
|
132
|
+
readonly ipv6Address: string;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Properties for Public DNS AAAA Record
|
|
136
|
+
*/
|
|
137
|
+
export interface DnsAaaaRecordProps extends DnsRecordBaseProps {
|
|
138
|
+
/**
|
|
139
|
+
* Array of AAAA records with IPv6 addresses
|
|
140
|
+
* Either records or targetResourceId must be specified
|
|
141
|
+
*/
|
|
142
|
+
readonly records?: DnsAaaaRecordEntry[];
|
|
143
|
+
/**
|
|
144
|
+
* Reference to an Azure resource from where the IP content is taken (alias record)
|
|
145
|
+
* Either records or targetResourceId must be specified
|
|
146
|
+
*/
|
|
147
|
+
readonly targetResourceId?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Azure Public DNS AAAA Record implementation
|
|
151
|
+
*
|
|
152
|
+
* AAAA records map a hostname to one or more IPv6 addresses.
|
|
153
|
+
* Supports alias records via targetResourceId for pointing to Azure resources.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* // Create an AAAA record:
|
|
157
|
+
* const aaaaRecord = new DnsAaaaRecord(this, "web-aaaa-record", {
|
|
158
|
+
* name: "www",
|
|
159
|
+
* dnsZoneId: zone.id,
|
|
160
|
+
* ttl: 300,
|
|
161
|
+
* records: [
|
|
162
|
+
* { ipv6Address: "2001:db8::1" },
|
|
163
|
+
* ],
|
|
164
|
+
* });
|
|
165
|
+
*
|
|
166
|
+
* @stability stable
|
|
167
|
+
*/
|
|
168
|
+
export declare class DnsAaaaRecord extends AzapiResource {
|
|
169
|
+
readonly props: DnsAaaaRecordProps;
|
|
170
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
171
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
172
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
173
|
+
constructor(scope: Construct, id: string, props: DnsAaaaRecordProps);
|
|
174
|
+
protected resolveParentId(props: any): string;
|
|
175
|
+
protected defaultVersion(): string;
|
|
176
|
+
protected resourceType(): string;
|
|
177
|
+
protected apiSchema(): ApiSchema;
|
|
178
|
+
protected requiresLocation(): boolean;
|
|
179
|
+
protected supportsTags(): boolean;
|
|
180
|
+
protected createResourceBody(props: any): any;
|
|
181
|
+
/**
|
|
182
|
+
* Get the FQDN of the record
|
|
183
|
+
*/
|
|
184
|
+
get fqdn(): string;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Entry for a CAA record (Certificate Authority Authorization)
|
|
188
|
+
*/
|
|
189
|
+
export interface DnsCaaRecordEntry {
|
|
190
|
+
/**
|
|
191
|
+
* Flags for this CAA record (0-255)
|
|
192
|
+
* 0 = non-critical, 128 = critical
|
|
193
|
+
* @example 0
|
|
194
|
+
*/
|
|
195
|
+
readonly flags: number;
|
|
196
|
+
/**
|
|
197
|
+
* The property tag for this CAA record
|
|
198
|
+
* Common values: "issue", "issuewild", "iodef"
|
|
199
|
+
* @example "issue"
|
|
200
|
+
*/
|
|
201
|
+
readonly tag: string;
|
|
202
|
+
/**
|
|
203
|
+
* The value associated with the tag
|
|
204
|
+
* @example "letsencrypt.org"
|
|
205
|
+
*/
|
|
206
|
+
readonly value: string;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Properties for Public DNS CAA Record
|
|
210
|
+
*/
|
|
211
|
+
export interface DnsCaaRecordProps extends DnsRecordBaseProps {
|
|
212
|
+
/**
|
|
213
|
+
* Array of CAA records with flags, tag, and value
|
|
214
|
+
*/
|
|
215
|
+
readonly records: DnsCaaRecordEntry[];
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Azure Public DNS CAA Record implementation
|
|
219
|
+
*
|
|
220
|
+
* CAA records specify which Certificate Authorities are authorized to issue
|
|
221
|
+
* certificates for a domain. This record type is only available in Public DNS Zones.
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
* // Create a CAA record to authorize Let's Encrypt:
|
|
225
|
+
* const caaRecord = new DnsCaaRecord(this, "caa-record", {
|
|
226
|
+
* name: "@",
|
|
227
|
+
* dnsZoneId: zone.id,
|
|
228
|
+
* ttl: 3600,
|
|
229
|
+
* records: [
|
|
230
|
+
* { flags: 0, tag: "issue", value: "letsencrypt.org" },
|
|
231
|
+
* { flags: 0, tag: "issuewild", value: ";" }, // Disallow wildcard certs
|
|
232
|
+
* { flags: 0, tag: "iodef", value: "mailto:security@example.com" },
|
|
233
|
+
* ],
|
|
234
|
+
* });
|
|
235
|
+
*
|
|
236
|
+
* @stability stable
|
|
237
|
+
*/
|
|
238
|
+
export declare class DnsCaaRecord extends AzapiResource {
|
|
239
|
+
readonly props: DnsCaaRecordProps;
|
|
240
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
241
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
242
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
243
|
+
constructor(scope: Construct, id: string, props: DnsCaaRecordProps);
|
|
244
|
+
protected resolveParentId(props: any): string;
|
|
245
|
+
protected defaultVersion(): string;
|
|
246
|
+
protected resourceType(): string;
|
|
247
|
+
protected apiSchema(): ApiSchema;
|
|
248
|
+
protected requiresLocation(): boolean;
|
|
249
|
+
protected supportsTags(): boolean;
|
|
250
|
+
protected createResourceBody(props: any): any;
|
|
251
|
+
/**
|
|
252
|
+
* Get the FQDN of the record
|
|
253
|
+
*/
|
|
254
|
+
get fqdn(): string;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Properties for Public DNS CNAME Record
|
|
258
|
+
*/
|
|
259
|
+
export interface DnsCnameRecordProps extends DnsRecordBaseProps {
|
|
260
|
+
/**
|
|
261
|
+
* The canonical name for this CNAME record
|
|
262
|
+
* Either cname or targetResourceId must be specified
|
|
263
|
+
* @example "www.contoso.com"
|
|
264
|
+
*/
|
|
265
|
+
readonly cname?: string;
|
|
266
|
+
/**
|
|
267
|
+
* Reference to an Azure resource from where the DNS content is taken (alias record)
|
|
268
|
+
* Either cname or targetResourceId must be specified
|
|
269
|
+
*/
|
|
270
|
+
readonly targetResourceId?: string;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Azure Public DNS CNAME Record implementation
|
|
274
|
+
*
|
|
275
|
+
* CNAME records create an alias from one hostname to another.
|
|
276
|
+
* Supports alias records via targetResourceId for pointing to Azure resources.
|
|
277
|
+
* Note: CNAME records cannot coexist with other record types at the same name.
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* // Create a CNAME record:
|
|
281
|
+
* const cnameRecord = new DnsCnameRecord(this, "alias-record", {
|
|
282
|
+
* name: "app",
|
|
283
|
+
* dnsZoneId: zone.id,
|
|
284
|
+
* ttl: 3600,
|
|
285
|
+
* cname: "www.example.com",
|
|
286
|
+
* });
|
|
287
|
+
*
|
|
288
|
+
* @stability stable
|
|
289
|
+
*/
|
|
290
|
+
export declare class DnsCnameRecord extends AzapiResource {
|
|
291
|
+
readonly props: DnsCnameRecordProps;
|
|
292
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
293
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
294
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
295
|
+
constructor(scope: Construct, id: string, props: DnsCnameRecordProps);
|
|
296
|
+
protected resolveParentId(props: any): string;
|
|
297
|
+
protected defaultVersion(): string;
|
|
298
|
+
protected resourceType(): string;
|
|
299
|
+
protected apiSchema(): ApiSchema;
|
|
300
|
+
protected requiresLocation(): boolean;
|
|
301
|
+
protected supportsTags(): boolean;
|
|
302
|
+
protected createResourceBody(props: any): any;
|
|
303
|
+
/**
|
|
304
|
+
* Get the FQDN of the record
|
|
305
|
+
*/
|
|
306
|
+
get fqdn(): string;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Entry for an MX record
|
|
310
|
+
*/
|
|
311
|
+
export interface DnsMxRecordEntry {
|
|
312
|
+
/**
|
|
313
|
+
* The preference value for this MX record (lower values have higher priority)
|
|
314
|
+
* @example 10
|
|
315
|
+
*/
|
|
316
|
+
readonly preference: number;
|
|
317
|
+
/**
|
|
318
|
+
* The mail exchange server hostname
|
|
319
|
+
* @example "mail1.example.com"
|
|
320
|
+
*/
|
|
321
|
+
readonly exchange: string;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Properties for Public DNS MX Record
|
|
325
|
+
*/
|
|
326
|
+
export interface DnsMxRecordProps extends DnsRecordBaseProps {
|
|
327
|
+
/**
|
|
328
|
+
* Array of MX records with exchange and preference
|
|
329
|
+
*/
|
|
330
|
+
readonly records: DnsMxRecordEntry[];
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Azure Public DNS MX Record implementation
|
|
334
|
+
*
|
|
335
|
+
* MX records specify mail exchange servers for a domain.
|
|
336
|
+
*
|
|
337
|
+
* @example
|
|
338
|
+
* // Create an MX record:
|
|
339
|
+
* const mxRecord = new DnsMxRecord(this, "mail-record", {
|
|
340
|
+
* name: "@",
|
|
341
|
+
* dnsZoneId: zone.id,
|
|
342
|
+
* ttl: 3600,
|
|
343
|
+
* records: [
|
|
344
|
+
* { preference: 10, exchange: "mail1.example.com" },
|
|
345
|
+
* { preference: 20, exchange: "mail2.example.com" },
|
|
346
|
+
* ],
|
|
347
|
+
* });
|
|
348
|
+
*
|
|
349
|
+
* @stability stable
|
|
350
|
+
*/
|
|
351
|
+
export declare class DnsMxRecord extends AzapiResource {
|
|
352
|
+
readonly props: DnsMxRecordProps;
|
|
353
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
354
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
355
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
356
|
+
constructor(scope: Construct, id: string, props: DnsMxRecordProps);
|
|
357
|
+
protected resolveParentId(props: any): string;
|
|
358
|
+
protected defaultVersion(): string;
|
|
359
|
+
protected resourceType(): string;
|
|
360
|
+
protected apiSchema(): ApiSchema;
|
|
361
|
+
protected requiresLocation(): boolean;
|
|
362
|
+
protected supportsTags(): boolean;
|
|
363
|
+
protected createResourceBody(props: any): any;
|
|
364
|
+
/**
|
|
365
|
+
* Get the FQDN of the record
|
|
366
|
+
*/
|
|
367
|
+
get fqdn(): string;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Entry for an NS record
|
|
371
|
+
*/
|
|
372
|
+
export interface DnsNsRecordEntry {
|
|
373
|
+
/**
|
|
374
|
+
* The name server domain name
|
|
375
|
+
* @example "ns1.example.com"
|
|
376
|
+
*/
|
|
377
|
+
readonly nsdname: string;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Properties for Public DNS NS Record
|
|
381
|
+
*/
|
|
382
|
+
export interface DnsNsRecordProps extends DnsRecordBaseProps {
|
|
383
|
+
/**
|
|
384
|
+
* Array of NS records with nsdname values
|
|
385
|
+
*/
|
|
386
|
+
readonly records: DnsNsRecordEntry[];
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Azure Public DNS NS Record implementation
|
|
390
|
+
*
|
|
391
|
+
* NS records specify the authoritative name servers for a domain or subdomain.
|
|
392
|
+
* This record type is only available in Public DNS Zones.
|
|
393
|
+
*
|
|
394
|
+
* @example
|
|
395
|
+
* // Create an NS record for a subdomain delegation:
|
|
396
|
+
* const nsRecord = new DnsNsRecord(this, "ns-record", {
|
|
397
|
+
* name: "subdomain",
|
|
398
|
+
* dnsZoneId: zone.id,
|
|
399
|
+
* ttl: 3600,
|
|
400
|
+
* records: [
|
|
401
|
+
* { nsdname: "ns1.subdomain.example.com" },
|
|
402
|
+
* { nsdname: "ns2.subdomain.example.com" },
|
|
403
|
+
* ],
|
|
404
|
+
* });
|
|
405
|
+
*
|
|
406
|
+
* @stability stable
|
|
407
|
+
*/
|
|
408
|
+
export declare class DnsNsRecord extends AzapiResource {
|
|
409
|
+
readonly props: DnsNsRecordProps;
|
|
410
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
411
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
412
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
413
|
+
constructor(scope: Construct, id: string, props: DnsNsRecordProps);
|
|
414
|
+
protected resolveParentId(props: any): string;
|
|
415
|
+
protected defaultVersion(): string;
|
|
416
|
+
protected resourceType(): string;
|
|
417
|
+
protected apiSchema(): ApiSchema;
|
|
418
|
+
protected requiresLocation(): boolean;
|
|
419
|
+
protected supportsTags(): boolean;
|
|
420
|
+
protected createResourceBody(props: any): any;
|
|
421
|
+
/**
|
|
422
|
+
* Get the FQDN of the record
|
|
423
|
+
*/
|
|
424
|
+
get fqdn(): string;
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Entry for a PTR record
|
|
428
|
+
*/
|
|
429
|
+
export interface DnsPtrRecordEntry {
|
|
430
|
+
/**
|
|
431
|
+
* The PTR target domain name
|
|
432
|
+
* @example "server1.example.com"
|
|
433
|
+
*/
|
|
434
|
+
readonly ptrdname: string;
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Properties for Public DNS PTR Record
|
|
438
|
+
*/
|
|
439
|
+
export interface DnsPtrRecordProps extends DnsRecordBaseProps {
|
|
440
|
+
/**
|
|
441
|
+
* Array of PTR records with ptrdname values
|
|
442
|
+
*/
|
|
443
|
+
readonly records: DnsPtrRecordEntry[];
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Azure Public DNS PTR Record implementation
|
|
447
|
+
*
|
|
448
|
+
* PTR records are used for reverse DNS lookups, mapping IP addresses to hostnames.
|
|
449
|
+
*
|
|
450
|
+
* @example
|
|
451
|
+
* // Create a PTR record:
|
|
452
|
+
* const ptrRecord = new DnsPtrRecord(this, "ptr-record", {
|
|
453
|
+
* name: "50",
|
|
454
|
+
* dnsZoneId: reverseZone.id,
|
|
455
|
+
* ttl: 3600,
|
|
456
|
+
* records: [
|
|
457
|
+
* { ptrdname: "server1.example.com" },
|
|
458
|
+
* ],
|
|
459
|
+
* });
|
|
460
|
+
*
|
|
461
|
+
* @stability stable
|
|
462
|
+
*/
|
|
463
|
+
export declare class DnsPtrRecord extends AzapiResource {
|
|
464
|
+
readonly props: DnsPtrRecordProps;
|
|
465
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
466
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
467
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
468
|
+
constructor(scope: Construct, id: string, props: DnsPtrRecordProps);
|
|
469
|
+
protected resolveParentId(props: any): string;
|
|
470
|
+
protected defaultVersion(): string;
|
|
471
|
+
protected resourceType(): string;
|
|
472
|
+
protected apiSchema(): ApiSchema;
|
|
473
|
+
protected requiresLocation(): boolean;
|
|
474
|
+
protected supportsTags(): boolean;
|
|
475
|
+
protected createResourceBody(props: any): any;
|
|
476
|
+
/**
|
|
477
|
+
* Get the FQDN of the record
|
|
478
|
+
*/
|
|
479
|
+
get fqdn(): string;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* SOA record configuration
|
|
483
|
+
*/
|
|
484
|
+
export interface DnsSoaRecordConfig {
|
|
485
|
+
/**
|
|
486
|
+
* The domain name of the authoritative name server
|
|
487
|
+
*/
|
|
488
|
+
readonly host?: string;
|
|
489
|
+
/**
|
|
490
|
+
* The email contact for this zone (with @ replaced by .)
|
|
491
|
+
* @example "admin.example.com" (for admin@example.com)
|
|
492
|
+
*/
|
|
493
|
+
readonly email?: string;
|
|
494
|
+
/**
|
|
495
|
+
* The serial number for this zone
|
|
496
|
+
*/
|
|
497
|
+
readonly serialNumber?: number;
|
|
498
|
+
/**
|
|
499
|
+
* The refresh time in seconds
|
|
500
|
+
*/
|
|
501
|
+
readonly refreshTime?: number;
|
|
502
|
+
/**
|
|
503
|
+
* The retry time in seconds
|
|
504
|
+
*/
|
|
505
|
+
readonly retryTime?: number;
|
|
506
|
+
/**
|
|
507
|
+
* The expire time in seconds
|
|
508
|
+
*/
|
|
509
|
+
readonly expireTime?: number;
|
|
510
|
+
/**
|
|
511
|
+
* The minimum TTL in seconds
|
|
512
|
+
*/
|
|
513
|
+
readonly minimumTTL?: number;
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Properties for Public DNS SOA Record
|
|
517
|
+
*/
|
|
518
|
+
export interface DnsSoaRecordProps extends DnsRecordBaseProps {
|
|
519
|
+
/**
|
|
520
|
+
* SOA record configuration
|
|
521
|
+
*/
|
|
522
|
+
readonly soaRecord: DnsSoaRecordConfig;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Azure Public DNS SOA Record implementation
|
|
526
|
+
*
|
|
527
|
+
* SOA records contain administrative information about a DNS zone.
|
|
528
|
+
* Note: Each zone automatically has an SOA record; this is typically used to update it.
|
|
529
|
+
*
|
|
530
|
+
* @example
|
|
531
|
+
* // Update the SOA record:
|
|
532
|
+
* const soaRecord = new DnsSoaRecord(this, "soa-record", {
|
|
533
|
+
* name: "@",
|
|
534
|
+
* dnsZoneId: zone.id,
|
|
535
|
+
* ttl: 3600,
|
|
536
|
+
* soaRecord: {
|
|
537
|
+
* email: "admin.example.com",
|
|
538
|
+
* refreshTime: 3600,
|
|
539
|
+
* retryTime: 300,
|
|
540
|
+
* expireTime: 2419200,
|
|
541
|
+
* minimumTTL: 300,
|
|
542
|
+
* },
|
|
543
|
+
* });
|
|
544
|
+
*
|
|
545
|
+
* @stability stable
|
|
546
|
+
*/
|
|
547
|
+
export declare class DnsSoaRecord extends AzapiResource {
|
|
548
|
+
readonly props: DnsSoaRecordProps;
|
|
549
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
550
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
551
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
552
|
+
constructor(scope: Construct, id: string, props: DnsSoaRecordProps);
|
|
553
|
+
protected resolveParentId(props: any): string;
|
|
554
|
+
protected defaultVersion(): string;
|
|
555
|
+
protected resourceType(): string;
|
|
556
|
+
protected apiSchema(): ApiSchema;
|
|
557
|
+
protected requiresLocation(): boolean;
|
|
558
|
+
protected supportsTags(): boolean;
|
|
559
|
+
protected createResourceBody(props: any): any;
|
|
560
|
+
/**
|
|
561
|
+
* Get the FQDN of the record
|
|
562
|
+
*/
|
|
563
|
+
get fqdn(): string;
|
|
564
|
+
}
|
|
565
|
+
/**
|
|
566
|
+
* Entry for an SRV record
|
|
567
|
+
*/
|
|
568
|
+
export interface DnsSrvRecordEntry {
|
|
569
|
+
/**
|
|
570
|
+
* The priority of this SRV record (lower values have higher priority)
|
|
571
|
+
*/
|
|
572
|
+
readonly priority: number;
|
|
573
|
+
/**
|
|
574
|
+
* The weight of this SRV record (used for load balancing among records with same priority)
|
|
575
|
+
*/
|
|
576
|
+
readonly weight: number;
|
|
577
|
+
/**
|
|
578
|
+
* The port number for the service
|
|
579
|
+
*/
|
|
580
|
+
readonly port: number;
|
|
581
|
+
/**
|
|
582
|
+
* The target hostname providing the service
|
|
583
|
+
* @example "sipserver.example.com"
|
|
584
|
+
*/
|
|
585
|
+
readonly target: string;
|
|
586
|
+
}
|
|
587
|
+
/**
|
|
588
|
+
* Properties for Public DNS SRV Record
|
|
589
|
+
*/
|
|
590
|
+
export interface DnsSrvRecordProps extends DnsRecordBaseProps {
|
|
591
|
+
/**
|
|
592
|
+
* Array of SRV records with priority, weight, port, and target
|
|
593
|
+
*/
|
|
594
|
+
readonly records: DnsSrvRecordEntry[];
|
|
595
|
+
}
|
|
596
|
+
/**
|
|
597
|
+
* Azure Public DNS SRV Record implementation
|
|
598
|
+
*
|
|
599
|
+
* SRV records specify the location of services like SIP, XMPP, etc.
|
|
600
|
+
*
|
|
601
|
+
* @example
|
|
602
|
+
* // Create an SRV record for a SIP service:
|
|
603
|
+
* const srvRecord = new DnsSrvRecord(this, "sip-record", {
|
|
604
|
+
* name: "_sip._tcp",
|
|
605
|
+
* dnsZoneId: zone.id,
|
|
606
|
+
* ttl: 3600,
|
|
607
|
+
* records: [
|
|
608
|
+
* { priority: 10, weight: 60, port: 5060, target: "sipserver1.example.com" },
|
|
609
|
+
* { priority: 10, weight: 40, port: 5060, target: "sipserver2.example.com" },
|
|
610
|
+
* ],
|
|
611
|
+
* });
|
|
612
|
+
*
|
|
613
|
+
* @stability stable
|
|
614
|
+
*/
|
|
615
|
+
export declare class DnsSrvRecord extends AzapiResource {
|
|
616
|
+
readonly props: DnsSrvRecordProps;
|
|
617
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
618
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
619
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
620
|
+
constructor(scope: Construct, id: string, props: DnsSrvRecordProps);
|
|
621
|
+
protected resolveParentId(props: any): string;
|
|
622
|
+
protected defaultVersion(): string;
|
|
623
|
+
protected resourceType(): string;
|
|
624
|
+
protected apiSchema(): ApiSchema;
|
|
625
|
+
protected requiresLocation(): boolean;
|
|
626
|
+
protected supportsTags(): boolean;
|
|
627
|
+
protected createResourceBody(props: any): any;
|
|
628
|
+
/**
|
|
629
|
+
* Get the FQDN of the record
|
|
630
|
+
*/
|
|
631
|
+
get fqdn(): string;
|
|
632
|
+
}
|
|
633
|
+
/**
|
|
634
|
+
* Entry for a TXT record
|
|
635
|
+
*/
|
|
636
|
+
export interface DnsTxtRecordEntry {
|
|
637
|
+
/**
|
|
638
|
+
* The text value of this TXT record (array of strings, each up to 255 chars)
|
|
639
|
+
* Long values are automatically split into multiple strings
|
|
640
|
+
* @example ["v=spf1 include:spf.protection.outlook.com -all"]
|
|
641
|
+
*/
|
|
642
|
+
readonly value: string[];
|
|
643
|
+
}
|
|
644
|
+
/**
|
|
645
|
+
* Properties for Public DNS TXT Record
|
|
646
|
+
*/
|
|
647
|
+
export interface DnsTxtRecordProps extends DnsRecordBaseProps {
|
|
648
|
+
/**
|
|
649
|
+
* Array of TXT records with string values
|
|
650
|
+
*/
|
|
651
|
+
readonly records: DnsTxtRecordEntry[];
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* Azure Public DNS TXT Record implementation
|
|
655
|
+
*
|
|
656
|
+
* TXT records store arbitrary text data, commonly used for SPF, DKIM, domain verification, etc.
|
|
657
|
+
*
|
|
658
|
+
* @example
|
|
659
|
+
* // Create a TXT record for SPF:
|
|
660
|
+
* const txtRecord = new DnsTxtRecord(this, "spf-record", {
|
|
661
|
+
* name: "@",
|
|
662
|
+
* dnsZoneId: zone.id,
|
|
663
|
+
* ttl: 3600,
|
|
664
|
+
* records: [
|
|
665
|
+
* { value: ["v=spf1 include:spf.protection.outlook.com -all"] },
|
|
666
|
+
* ],
|
|
667
|
+
* });
|
|
668
|
+
*
|
|
669
|
+
* @stability stable
|
|
670
|
+
*/
|
|
671
|
+
export declare class DnsTxtRecord extends AzapiResource {
|
|
672
|
+
readonly props: DnsTxtRecordProps;
|
|
673
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
674
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
675
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
676
|
+
constructor(scope: Construct, id: string, props: DnsTxtRecordProps);
|
|
677
|
+
protected resolveParentId(props: any): string;
|
|
678
|
+
protected defaultVersion(): string;
|
|
679
|
+
protected resourceType(): string;
|
|
680
|
+
protected apiSchema(): ApiSchema;
|
|
681
|
+
protected requiresLocation(): boolean;
|
|
682
|
+
protected supportsTags(): boolean;
|
|
683
|
+
protected createResourceBody(props: any): any;
|
|
684
|
+
/**
|
|
685
|
+
* Get the FQDN of the record
|
|
686
|
+
*/
|
|
687
|
+
get fqdn(): string;
|
|
688
|
+
}
|