@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.
Files changed (121) hide show
  1. package/.jsii +46476 -27231
  2. package/API.md +68443 -28286
  3. package/lib/azure-actiongroup/lib/action-group.js +1 -1
  4. package/lib/azure-activitylogalert/lib/activity-log-alert.js +1 -1
  5. package/lib/azure-aks/lib/aks-cluster.js +1 -1
  6. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +1 -1
  7. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
  8. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
  9. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
  10. package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
  11. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
  12. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
  13. package/lib/azure-dnszone/lib/dns-zone.js +1 -1
  14. package/lib/azure-dnszone/lib/index.d.ts +1 -0
  15. package/lib/azure-dnszone/lib/index.js +2 -1
  16. package/lib/azure-dnszone/lib/records/dns-record-schemas.d.ts +68 -0
  17. package/lib/azure-dnszone/lib/records/dns-record-schemas.js +813 -0
  18. package/lib/azure-dnszone/lib/records/dns-records.d.ts +688 -0
  19. package/lib/azure-dnszone/lib/records/dns-records.js +924 -0
  20. package/lib/azure-dnszone/lib/records/index.d.ts +19 -0
  21. package/lib/azure-dnszone/lib/records/index.js +38 -0
  22. package/lib/azure-dnszone/test/dns-records.integ.d.ts +21 -0
  23. package/lib/azure-dnszone/test/dns-records.integ.js +321 -0
  24. package/lib/azure-dnszone/test/dns-records.spec.d.ts +20 -0
  25. package/lib/azure-dnszone/test/dns-records.spec.js +950 -0
  26. package/lib/azure-loganalyticsworkspace/index.d.ts +6 -0
  27. package/lib/azure-loganalyticsworkspace/index.js +23 -0
  28. package/lib/azure-loganalyticsworkspace/lib/index.d.ts +5 -0
  29. package/lib/azure-loganalyticsworkspace/lib/index.js +22 -0
  30. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.d.ts +51 -0
  31. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.js +255 -0
  32. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +301 -0
  33. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +213 -0
  34. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +9 -0
  35. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +71 -0
  36. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.d.ts +8 -0
  37. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +504 -0
  38. package/lib/azure-metricalert/lib/metric-alert.js +1 -1
  39. package/lib/azure-networkinterface/lib/network-interface.js +1 -1
  40. package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
  41. package/lib/azure-networkwatcher/index.d.ts +14 -0
  42. package/lib/azure-networkwatcher/index.js +31 -0
  43. package/lib/azure-networkwatcher/lib/index.d.ts +5 -0
  44. package/lib/azure-networkwatcher/lib/index.js +22 -0
  45. package/lib/azure-networkwatcher/lib/network-watcher-schemas.d.ts +47 -0
  46. package/lib/azure-networkwatcher/lib/network-watcher-schemas.js +167 -0
  47. package/lib/azure-networkwatcher/lib/network-watcher.d.ts +181 -0
  48. package/lib/azure-networkwatcher/lib/network-watcher.js +187 -0
  49. package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +12 -0
  50. package/lib/azure-networkwatcher/test/network-watcher.integ.js +84 -0
  51. package/lib/azure-networkwatcher/test/network-watcher.spec.d.ts +8 -0
  52. package/lib/azure-networkwatcher/test/network-watcher.spec.js +312 -0
  53. package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
  54. package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
  55. package/lib/azure-policysetdefinition/index.d.ts +10 -0
  56. package/lib/azure-policysetdefinition/index.js +27 -0
  57. package/lib/azure-policysetdefinition/lib/index.d.ts +5 -0
  58. package/lib/azure-policysetdefinition/lib/index.js +22 -0
  59. package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.d.ts +50 -0
  60. package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.js +255 -0
  61. package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +426 -0
  62. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +255 -0
  63. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +9 -0
  64. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +56 -0
  65. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.d.ts +8 -0
  66. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +745 -0
  67. package/lib/azure-privatednszone/lib/index.d.ts +1 -0
  68. package/lib/azure-privatednszone/lib/index.js +2 -1
  69. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +0 -2
  70. package/lib/azure-privatednszone/lib/private-dns-zone.js +6 -13
  71. package/lib/azure-privatednszone/lib/records/index.d.ts +7 -0
  72. package/lib/azure-privatednszone/lib/records/index.js +26 -0
  73. package/lib/azure-privatednszone/lib/records/private-dns-record-schemas.d.ts +52 -0
  74. package/lib/azure-privatednszone/lib/records/private-dns-record-schemas.js +683 -0
  75. package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +523 -0
  76. package/lib/azure-privatednszone/lib/records/private-dns-records.js +739 -0
  77. package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +19 -0
  78. package/lib/azure-privatednszone/test/private-dns-records.integ.js +245 -0
  79. package/lib/azure-privatednszone/test/private-dns-records.spec.d.ts +18 -0
  80. package/lib/azure-privatednszone/test/private-dns-records.spec.js +756 -0
  81. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +5 -5
  82. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
  83. package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
  84. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  85. package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
  86. package/lib/azure-roledefinition/lib/role-definition.js +1 -1
  87. package/lib/azure-storageaccount/lib/storage-account.js +1 -1
  88. package/lib/azure-subnet/lib/subnet.js +1 -1
  89. package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
  90. package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
  91. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway-schemas.js +2 -2
  92. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +4 -2
  93. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +8 -5
  94. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +109 -1
  95. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
  96. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
  97. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
  98. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
  99. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
  100. package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
  101. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
  102. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
  103. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
  104. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
  105. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +1 -1
  106. package/lib/core-azure/lib/azapi/azapi-resource.js +4 -4
  107. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
  108. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
  109. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
  110. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
  111. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
  112. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
  113. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  114. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  115. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  116. package/lib/index.d.ts +23 -0
  117. package/lib/index.js +25 -2
  118. package/lib/testing/index.js +2 -2
  119. package/lib/testing/lib/cleanup.js +1 -1
  120. package/lib/testing/lib/metadata.js +1 -1
  121. 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
+ }