@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,523 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Azure Private DNS Zone Record implementations using AzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This file provides implementations for all Private DNS Zone record types:
|
|
5
|
+
* - PrivateDnsARecord (A records with IPv4 addresses)
|
|
6
|
+
* - PrivateDnsAaaaRecord (AAAA records with IPv6 addresses)
|
|
7
|
+
* - PrivateDnsCnameRecord (CNAME records)
|
|
8
|
+
* - PrivateDnsMxRecord (MX records with exchange and preference)
|
|
9
|
+
* - PrivateDnsPtrRecord (PTR records)
|
|
10
|
+
* - PrivateDnsSoaRecord (SOA records)
|
|
11
|
+
* - PrivateDnsSrvRecord (SRV records with priority, weight, port, target)
|
|
12
|
+
* - PrivateDnsTxtRecord (TXT records)
|
|
13
|
+
*
|
|
14
|
+
* API Version: 2024-06-01
|
|
15
|
+
*/
|
|
16
|
+
import * as cdktf from "cdktf";
|
|
17
|
+
import { Construct } from "constructs";
|
|
18
|
+
import { AzapiResource, AzapiResourceProps } from "../../../core-azure/lib/azapi/azapi-resource";
|
|
19
|
+
import { ApiSchema } from "../../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
20
|
+
/**
|
|
21
|
+
* Base properties shared by all Private DNS record types
|
|
22
|
+
*
|
|
23
|
+
* Note: The `name` property is inherited from AzapiResourceProps.
|
|
24
|
+
* For DNS records, use @ for apex records or provide a relative name like "www" or "mail".
|
|
25
|
+
*/
|
|
26
|
+
export interface PrivateDnsRecordBaseProps extends AzapiResourceProps {
|
|
27
|
+
/**
|
|
28
|
+
* Resource ID of the parent Private DNS Zone
|
|
29
|
+
* @example zone.id or "/subscriptions/.../providers/Microsoft.Network/privateDnsZones/example.com"
|
|
30
|
+
*/
|
|
31
|
+
readonly privateDnsZoneId: string;
|
|
32
|
+
/**
|
|
33
|
+
* Time to Live in seconds
|
|
34
|
+
* @default 3600
|
|
35
|
+
*/
|
|
36
|
+
readonly ttl?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Metadata key-value pairs for the record set
|
|
39
|
+
*/
|
|
40
|
+
readonly metadata?: {
|
|
41
|
+
[key: string]: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Entry for an A record with IPv4 address
|
|
46
|
+
*/
|
|
47
|
+
export interface ARecordEntry {
|
|
48
|
+
/**
|
|
49
|
+
* The IPv4 address of this A record
|
|
50
|
+
* @example "10.0.1.4"
|
|
51
|
+
*/
|
|
52
|
+
readonly ipv4Address: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Properties for Private DNS A Record
|
|
56
|
+
*/
|
|
57
|
+
export interface PrivateDnsARecordProps extends PrivateDnsRecordBaseProps {
|
|
58
|
+
/**
|
|
59
|
+
* Array of A records with IPv4 addresses
|
|
60
|
+
*/
|
|
61
|
+
readonly records: ARecordEntry[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Azure Private DNS A Record implementation
|
|
65
|
+
*
|
|
66
|
+
* A records map a hostname to one or more IPv4 addresses.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // Create an A record with multiple IP addresses:
|
|
70
|
+
* const aRecord = new PrivateDnsARecord(this, "web-a-record", {
|
|
71
|
+
* name: "www",
|
|
72
|
+
* privateDnsZoneId: zone.id,
|
|
73
|
+
* ttl: 300,
|
|
74
|
+
* records: [
|
|
75
|
+
* { ipv4Address: "10.0.1.4" },
|
|
76
|
+
* { ipv4Address: "10.0.1.5" },
|
|
77
|
+
* ],
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* @stability stable
|
|
81
|
+
*/
|
|
82
|
+
export declare class PrivateDnsARecord extends AzapiResource {
|
|
83
|
+
readonly props: PrivateDnsARecordProps;
|
|
84
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
85
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
86
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
87
|
+
constructor(scope: Construct, id: string, props: PrivateDnsARecordProps);
|
|
88
|
+
protected resolveParentId(props: any): string;
|
|
89
|
+
protected defaultVersion(): string;
|
|
90
|
+
protected resourceType(): string;
|
|
91
|
+
protected apiSchema(): ApiSchema;
|
|
92
|
+
protected requiresLocation(): boolean;
|
|
93
|
+
protected supportsTags(): boolean;
|
|
94
|
+
protected createResourceBody(props: any): any;
|
|
95
|
+
/**
|
|
96
|
+
* Get the FQDN of the record
|
|
97
|
+
*/
|
|
98
|
+
get fqdn(): string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Entry for an AAAA record with IPv6 address
|
|
102
|
+
*/
|
|
103
|
+
export interface AaaaRecordEntry {
|
|
104
|
+
/**
|
|
105
|
+
* The IPv6 address of this AAAA record
|
|
106
|
+
* @example "2001:db8::1"
|
|
107
|
+
*/
|
|
108
|
+
readonly ipv6Address: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Properties for Private DNS AAAA Record
|
|
112
|
+
*/
|
|
113
|
+
export interface PrivateDnsAaaaRecordProps extends PrivateDnsRecordBaseProps {
|
|
114
|
+
/**
|
|
115
|
+
* Array of AAAA records with IPv6 addresses
|
|
116
|
+
*/
|
|
117
|
+
readonly records: AaaaRecordEntry[];
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Azure Private DNS AAAA Record implementation
|
|
121
|
+
*
|
|
122
|
+
* AAAA records map a hostname to one or more IPv6 addresses.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* // Create an AAAA record:
|
|
126
|
+
* const aaaaRecord = new PrivateDnsAaaaRecord(this, "web-aaaa-record", {
|
|
127
|
+
* name: "www",
|
|
128
|
+
* privateDnsZoneId: zone.id,
|
|
129
|
+
* ttl: 300,
|
|
130
|
+
* records: [
|
|
131
|
+
* { ipv6Address: "2001:db8::1" },
|
|
132
|
+
* ],
|
|
133
|
+
* });
|
|
134
|
+
*
|
|
135
|
+
* @stability stable
|
|
136
|
+
*/
|
|
137
|
+
export declare class PrivateDnsAaaaRecord extends AzapiResource {
|
|
138
|
+
readonly props: PrivateDnsAaaaRecordProps;
|
|
139
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
140
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
141
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
142
|
+
constructor(scope: Construct, id: string, props: PrivateDnsAaaaRecordProps);
|
|
143
|
+
protected resolveParentId(props: any): string;
|
|
144
|
+
protected defaultVersion(): string;
|
|
145
|
+
protected resourceType(): string;
|
|
146
|
+
protected apiSchema(): ApiSchema;
|
|
147
|
+
protected requiresLocation(): boolean;
|
|
148
|
+
protected supportsTags(): boolean;
|
|
149
|
+
protected createResourceBody(props: any): any;
|
|
150
|
+
/**
|
|
151
|
+
* Get the FQDN of the record
|
|
152
|
+
*/
|
|
153
|
+
get fqdn(): string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Properties for Private DNS CNAME Record
|
|
157
|
+
*/
|
|
158
|
+
export interface PrivateDnsCnameRecordProps extends PrivateDnsRecordBaseProps {
|
|
159
|
+
/**
|
|
160
|
+
* The canonical name for this CNAME record
|
|
161
|
+
* @example "www.contoso.com"
|
|
162
|
+
*/
|
|
163
|
+
readonly cname: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Azure Private DNS CNAME Record implementation
|
|
167
|
+
*
|
|
168
|
+
* CNAME records create an alias from one hostname to another.
|
|
169
|
+
* Note: CNAME records cannot coexist with other record types at the same name.
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* // Create a CNAME record:
|
|
173
|
+
* const cnameRecord = new PrivateDnsCnameRecord(this, "alias-record", {
|
|
174
|
+
* name: "app",
|
|
175
|
+
* privateDnsZoneId: zone.id,
|
|
176
|
+
* ttl: 3600,
|
|
177
|
+
* cname: "www.internal.example.com",
|
|
178
|
+
* });
|
|
179
|
+
*
|
|
180
|
+
* @stability stable
|
|
181
|
+
*/
|
|
182
|
+
export declare class PrivateDnsCnameRecord extends AzapiResource {
|
|
183
|
+
readonly props: PrivateDnsCnameRecordProps;
|
|
184
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
185
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
186
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
187
|
+
constructor(scope: Construct, id: string, props: PrivateDnsCnameRecordProps);
|
|
188
|
+
protected resolveParentId(props: any): string;
|
|
189
|
+
protected defaultVersion(): string;
|
|
190
|
+
protected resourceType(): string;
|
|
191
|
+
protected apiSchema(): ApiSchema;
|
|
192
|
+
protected requiresLocation(): boolean;
|
|
193
|
+
protected supportsTags(): boolean;
|
|
194
|
+
protected createResourceBody(props: any): any;
|
|
195
|
+
/**
|
|
196
|
+
* Get the FQDN of the record
|
|
197
|
+
*/
|
|
198
|
+
get fqdn(): string;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Entry for an MX record
|
|
202
|
+
*/
|
|
203
|
+
export interface MxRecordEntry {
|
|
204
|
+
/**
|
|
205
|
+
* The preference value for this MX record (lower values have higher priority)
|
|
206
|
+
* @example 10
|
|
207
|
+
*/
|
|
208
|
+
readonly preference: number;
|
|
209
|
+
/**
|
|
210
|
+
* The mail exchange server hostname
|
|
211
|
+
* @example "mail1.example.com"
|
|
212
|
+
*/
|
|
213
|
+
readonly exchange: string;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Properties for Private DNS MX Record
|
|
217
|
+
*/
|
|
218
|
+
export interface PrivateDnsMxRecordProps extends PrivateDnsRecordBaseProps {
|
|
219
|
+
/**
|
|
220
|
+
* Array of MX records with exchange and preference
|
|
221
|
+
*/
|
|
222
|
+
readonly records: MxRecordEntry[];
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Azure Private DNS MX Record implementation
|
|
226
|
+
*
|
|
227
|
+
* MX records specify mail exchange servers for a domain.
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* // Create an MX record:
|
|
231
|
+
* const mxRecord = new PrivateDnsMxRecord(this, "mail-record", {
|
|
232
|
+
* name: "@",
|
|
233
|
+
* privateDnsZoneId: zone.id,
|
|
234
|
+
* ttl: 3600,
|
|
235
|
+
* records: [
|
|
236
|
+
* { preference: 10, exchange: "mail1.internal.example.com" },
|
|
237
|
+
* { preference: 20, exchange: "mail2.internal.example.com" },
|
|
238
|
+
* ],
|
|
239
|
+
* });
|
|
240
|
+
*
|
|
241
|
+
* @stability stable
|
|
242
|
+
*/
|
|
243
|
+
export declare class PrivateDnsMxRecord extends AzapiResource {
|
|
244
|
+
readonly props: PrivateDnsMxRecordProps;
|
|
245
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
246
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
247
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
248
|
+
constructor(scope: Construct, id: string, props: PrivateDnsMxRecordProps);
|
|
249
|
+
protected resolveParentId(props: any): string;
|
|
250
|
+
protected defaultVersion(): string;
|
|
251
|
+
protected resourceType(): string;
|
|
252
|
+
protected apiSchema(): ApiSchema;
|
|
253
|
+
protected requiresLocation(): boolean;
|
|
254
|
+
protected supportsTags(): boolean;
|
|
255
|
+
protected createResourceBody(props: any): any;
|
|
256
|
+
/**
|
|
257
|
+
* Get the FQDN of the record
|
|
258
|
+
*/
|
|
259
|
+
get fqdn(): string;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Entry for a PTR record
|
|
263
|
+
*/
|
|
264
|
+
export interface PtrRecordEntry {
|
|
265
|
+
/**
|
|
266
|
+
* The PTR target domain name
|
|
267
|
+
* @example "server1.internal.example.com"
|
|
268
|
+
*/
|
|
269
|
+
readonly ptrdname: string;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Properties for Private DNS PTR Record
|
|
273
|
+
*/
|
|
274
|
+
export interface PrivateDnsPtrRecordProps extends PrivateDnsRecordBaseProps {
|
|
275
|
+
/**
|
|
276
|
+
* Array of PTR records with ptrdname values
|
|
277
|
+
*/
|
|
278
|
+
readonly records: PtrRecordEntry[];
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Azure Private DNS PTR Record implementation
|
|
282
|
+
*
|
|
283
|
+
* PTR records are used for reverse DNS lookups, mapping IP addresses to hostnames.
|
|
284
|
+
*
|
|
285
|
+
* @example
|
|
286
|
+
* // Create a PTR record:
|
|
287
|
+
* const ptrRecord = new PrivateDnsPtrRecord(this, "ptr-record", {
|
|
288
|
+
* name: "4.1.0.10.in-addr.arpa",
|
|
289
|
+
* privateDnsZoneId: reverseZone.id,
|
|
290
|
+
* ttl: 3600,
|
|
291
|
+
* records: [
|
|
292
|
+
* { ptrdname: "server1.internal.example.com" },
|
|
293
|
+
* ],
|
|
294
|
+
* });
|
|
295
|
+
*
|
|
296
|
+
* @stability stable
|
|
297
|
+
*/
|
|
298
|
+
export declare class PrivateDnsPtrRecord extends AzapiResource {
|
|
299
|
+
readonly props: PrivateDnsPtrRecordProps;
|
|
300
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
301
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
302
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
303
|
+
constructor(scope: Construct, id: string, props: PrivateDnsPtrRecordProps);
|
|
304
|
+
protected resolveParentId(props: any): string;
|
|
305
|
+
protected defaultVersion(): string;
|
|
306
|
+
protected resourceType(): string;
|
|
307
|
+
protected apiSchema(): ApiSchema;
|
|
308
|
+
protected requiresLocation(): boolean;
|
|
309
|
+
protected supportsTags(): boolean;
|
|
310
|
+
protected createResourceBody(props: any): any;
|
|
311
|
+
/**
|
|
312
|
+
* Get the FQDN of the record
|
|
313
|
+
*/
|
|
314
|
+
get fqdn(): string;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* SOA record configuration
|
|
318
|
+
*/
|
|
319
|
+
export interface SoaRecordConfig {
|
|
320
|
+
/**
|
|
321
|
+
* The domain name of the authoritative name server
|
|
322
|
+
*/
|
|
323
|
+
readonly host?: string;
|
|
324
|
+
/**
|
|
325
|
+
* The email contact for this zone (with @ replaced by .)
|
|
326
|
+
* @example "admin.example.com" (for admin@example.com)
|
|
327
|
+
*/
|
|
328
|
+
readonly email?: string;
|
|
329
|
+
/**
|
|
330
|
+
* The serial number for this zone
|
|
331
|
+
*/
|
|
332
|
+
readonly serialNumber?: number;
|
|
333
|
+
/**
|
|
334
|
+
* The refresh time in seconds
|
|
335
|
+
*/
|
|
336
|
+
readonly refreshTime?: number;
|
|
337
|
+
/**
|
|
338
|
+
* The retry time in seconds
|
|
339
|
+
*/
|
|
340
|
+
readonly retryTime?: number;
|
|
341
|
+
/**
|
|
342
|
+
* The expire time in seconds
|
|
343
|
+
*/
|
|
344
|
+
readonly expireTime?: number;
|
|
345
|
+
/**
|
|
346
|
+
* The minimum TTL in seconds
|
|
347
|
+
*/
|
|
348
|
+
readonly minimumTtl?: number;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Properties for Private DNS SOA Record
|
|
352
|
+
*/
|
|
353
|
+
export interface PrivateDnsSoaRecordProps extends PrivateDnsRecordBaseProps {
|
|
354
|
+
/**
|
|
355
|
+
* SOA record configuration
|
|
356
|
+
*/
|
|
357
|
+
readonly soaRecord: SoaRecordConfig;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Azure Private DNS SOA Record implementation
|
|
361
|
+
*
|
|
362
|
+
* SOA records contain administrative information about a DNS zone.
|
|
363
|
+
* Note: Each zone automatically has an SOA record; this is typically used to update it.
|
|
364
|
+
*
|
|
365
|
+
* @example
|
|
366
|
+
* // Update the SOA record:
|
|
367
|
+
* const soaRecord = new PrivateDnsSoaRecord(this, "soa-record", {
|
|
368
|
+
* name: "@",
|
|
369
|
+
* privateDnsZoneId: zone.id,
|
|
370
|
+
* ttl: 3600,
|
|
371
|
+
* soaRecord: {
|
|
372
|
+
* email: "admin.example.com",
|
|
373
|
+
* refreshTime: 3600,
|
|
374
|
+
* retryTime: 300,
|
|
375
|
+
* expireTime: 2419200,
|
|
376
|
+
* minimumTtl: 300,
|
|
377
|
+
* },
|
|
378
|
+
* });
|
|
379
|
+
*
|
|
380
|
+
* @stability stable
|
|
381
|
+
*/
|
|
382
|
+
export declare class PrivateDnsSoaRecord extends AzapiResource {
|
|
383
|
+
readonly props: PrivateDnsSoaRecordProps;
|
|
384
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
385
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
386
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
387
|
+
constructor(scope: Construct, id: string, props: PrivateDnsSoaRecordProps);
|
|
388
|
+
protected resolveParentId(props: any): string;
|
|
389
|
+
protected defaultVersion(): string;
|
|
390
|
+
protected resourceType(): string;
|
|
391
|
+
protected apiSchema(): ApiSchema;
|
|
392
|
+
protected requiresLocation(): boolean;
|
|
393
|
+
protected supportsTags(): boolean;
|
|
394
|
+
protected createResourceBody(props: any): any;
|
|
395
|
+
/**
|
|
396
|
+
* Get the FQDN of the record
|
|
397
|
+
*/
|
|
398
|
+
get fqdn(): string;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Entry for an SRV record
|
|
402
|
+
*/
|
|
403
|
+
export interface SrvRecordEntry {
|
|
404
|
+
/**
|
|
405
|
+
* The priority of this SRV record (lower values have higher priority)
|
|
406
|
+
*/
|
|
407
|
+
readonly priority: number;
|
|
408
|
+
/**
|
|
409
|
+
* The weight of this SRV record (used for load balancing among records with same priority)
|
|
410
|
+
*/
|
|
411
|
+
readonly weight: number;
|
|
412
|
+
/**
|
|
413
|
+
* The port number for the service
|
|
414
|
+
*/
|
|
415
|
+
readonly port: number;
|
|
416
|
+
/**
|
|
417
|
+
* The target hostname providing the service
|
|
418
|
+
* @example "sipserver.internal.example.com"
|
|
419
|
+
*/
|
|
420
|
+
readonly target: string;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Properties for Private DNS SRV Record
|
|
424
|
+
*/
|
|
425
|
+
export interface PrivateDnsSrvRecordProps extends PrivateDnsRecordBaseProps {
|
|
426
|
+
/**
|
|
427
|
+
* Array of SRV records with priority, weight, port, and target
|
|
428
|
+
*/
|
|
429
|
+
readonly records: SrvRecordEntry[];
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Azure Private DNS SRV Record implementation
|
|
433
|
+
*
|
|
434
|
+
* SRV records specify the location of services like SIP, XMPP, etc.
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* // Create an SRV record for a SIP service:
|
|
438
|
+
* const srvRecord = new PrivateDnsSrvRecord(this, "sip-record", {
|
|
439
|
+
* name: "_sip._tcp",
|
|
440
|
+
* privateDnsZoneId: zone.id,
|
|
441
|
+
* ttl: 3600,
|
|
442
|
+
* records: [
|
|
443
|
+
* { priority: 10, weight: 60, port: 5060, target: "sipserver1.internal.example.com" },
|
|
444
|
+
* { priority: 10, weight: 40, port: 5060, target: "sipserver2.internal.example.com" },
|
|
445
|
+
* ],
|
|
446
|
+
* });
|
|
447
|
+
*
|
|
448
|
+
* @stability stable
|
|
449
|
+
*/
|
|
450
|
+
export declare class PrivateDnsSrvRecord extends AzapiResource {
|
|
451
|
+
readonly props: PrivateDnsSrvRecordProps;
|
|
452
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
453
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
454
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
455
|
+
constructor(scope: Construct, id: string, props: PrivateDnsSrvRecordProps);
|
|
456
|
+
protected resolveParentId(props: any): string;
|
|
457
|
+
protected defaultVersion(): string;
|
|
458
|
+
protected resourceType(): string;
|
|
459
|
+
protected apiSchema(): ApiSchema;
|
|
460
|
+
protected requiresLocation(): boolean;
|
|
461
|
+
protected supportsTags(): boolean;
|
|
462
|
+
protected createResourceBody(props: any): any;
|
|
463
|
+
/**
|
|
464
|
+
* Get the FQDN of the record
|
|
465
|
+
*/
|
|
466
|
+
get fqdn(): string;
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Entry for a TXT record
|
|
470
|
+
*/
|
|
471
|
+
export interface TxtRecordEntry {
|
|
472
|
+
/**
|
|
473
|
+
* The text value of this TXT record (array of strings, each up to 255 chars)
|
|
474
|
+
* Long values are automatically split into multiple strings
|
|
475
|
+
* @example ["v=spf1 include:spf.protection.outlook.com -all"]
|
|
476
|
+
*/
|
|
477
|
+
readonly value: string[];
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Properties for Private DNS TXT Record
|
|
481
|
+
*/
|
|
482
|
+
export interface PrivateDnsTxtRecordProps extends PrivateDnsRecordBaseProps {
|
|
483
|
+
/**
|
|
484
|
+
* Array of TXT records with string values
|
|
485
|
+
*/
|
|
486
|
+
readonly records: TxtRecordEntry[];
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Azure Private DNS TXT Record implementation
|
|
490
|
+
*
|
|
491
|
+
* TXT records store arbitrary text data, commonly used for SPF, DKIM, etc.
|
|
492
|
+
*
|
|
493
|
+
* @example
|
|
494
|
+
* // Create a TXT record for SPF:
|
|
495
|
+
* const txtRecord = new PrivateDnsTxtRecord(this, "spf-record", {
|
|
496
|
+
* name: "@",
|
|
497
|
+
* privateDnsZoneId: zone.id,
|
|
498
|
+
* ttl: 3600,
|
|
499
|
+
* records: [
|
|
500
|
+
* { value: ["v=spf1 include:spf.protection.outlook.com -all"] },
|
|
501
|
+
* ],
|
|
502
|
+
* });
|
|
503
|
+
*
|
|
504
|
+
* @stability stable
|
|
505
|
+
*/
|
|
506
|
+
export declare class PrivateDnsTxtRecord extends AzapiResource {
|
|
507
|
+
readonly props: PrivateDnsTxtRecordProps;
|
|
508
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
509
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
510
|
+
readonly fqdnOutput: cdktf.TerraformOutput;
|
|
511
|
+
constructor(scope: Construct, id: string, props: PrivateDnsTxtRecordProps);
|
|
512
|
+
protected resolveParentId(props: any): string;
|
|
513
|
+
protected defaultVersion(): string;
|
|
514
|
+
protected resourceType(): string;
|
|
515
|
+
protected apiSchema(): ApiSchema;
|
|
516
|
+
protected requiresLocation(): boolean;
|
|
517
|
+
protected supportsTags(): boolean;
|
|
518
|
+
protected createResourceBody(props: any): any;
|
|
519
|
+
/**
|
|
520
|
+
* Get the FQDN of the record
|
|
521
|
+
*/
|
|
522
|
+
get fqdn(): string;
|
|
523
|
+
}
|