@microsoft/terraform-cdk-constructs 1.3.1 → 1.4.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 +10617 -7822
- package/API.md +25592 -20586
- 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-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-policyassignment/lib/policy-assignment.js +1 -1
- package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
- package/lib/azure-privatednszone/lib/private-dns-zone.js +1 -1
- 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-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/index.d.ts +5 -0
- package/lib/azure-virtualnetworkmanager/lib/index.js +6 -1
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-schemas.d.ts +24 -0
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-schemas.js +169 -0
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr-schemas.js +206 -0
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +170 -0
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +214 -0
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +175 -0
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +206 -0
- 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/utils/cidr-validator.d.ts +225 -0
- package/lib/azure-virtualnetworkmanager/lib/utils/cidr-validator.js +389 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +56 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +29 -2
- package/lib/azure-virtualnetworkmanager/test/cidr-validator.spec.d.ts +6 -0
- package/lib/azure-virtualnetworkmanager/test/cidr-validator.spec.js +292 -0
- package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.d.ts +6 -0
- package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +430 -0
- package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.d.ts +6 -0
- package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +372 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +2 -1
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +30 -3
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +105 -1
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +1 -1
- package/lib/core-azure/lib/azapi/azapi-resource.js +2 -2
- 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/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,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Azure Virtual Network Manager IPAM Pool implementation using AzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This class provides a unified implementation for Azure Virtual Network Manager IPAM Pools
|
|
5
|
+
* that automatically handles version management, schema validation, and property transformation
|
|
6
|
+
* across all supported API versions.
|
|
7
|
+
*
|
|
8
|
+
* Supported API Versions:
|
|
9
|
+
* - 2024-05-01 (Active, Latest)
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Automatic latest version resolution when no version is specified
|
|
13
|
+
* - Explicit version pinning for stability requirements
|
|
14
|
+
* - Schema-driven validation and transformation
|
|
15
|
+
* - CIDR validation and overlap detection
|
|
16
|
+
* - Hierarchical pool support
|
|
17
|
+
* - JSII compliance for multi-language support
|
|
18
|
+
*/
|
|
19
|
+
import * as cdktf from "cdktf";
|
|
20
|
+
import { Construct } from "constructs";
|
|
21
|
+
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
22
|
+
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
23
|
+
/**
|
|
24
|
+
* Properties for the Azure Virtual Network Manager IPAM Pool
|
|
25
|
+
*
|
|
26
|
+
* Extends AzapiResourceProps with IPAM Pool specific properties
|
|
27
|
+
*/
|
|
28
|
+
export interface IpamPoolProps extends AzapiResourceProps {
|
|
29
|
+
/**
|
|
30
|
+
* Resource ID of the parent Network Manager
|
|
31
|
+
* @example "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/networkManagers/vnm"
|
|
32
|
+
*/
|
|
33
|
+
readonly networkManagerId: string;
|
|
34
|
+
/**
|
|
35
|
+
* IP address prefixes for the pool
|
|
36
|
+
* Must be valid CIDR notation (e.g., "10.0.0.0/8")
|
|
37
|
+
* Multiple prefixes must not overlap
|
|
38
|
+
* @example ["10.0.0.0/8", "172.16.0.0/12"]
|
|
39
|
+
*/
|
|
40
|
+
readonly addressPrefixes: string[];
|
|
41
|
+
/**
|
|
42
|
+
* Optional description of the IPAM pool
|
|
43
|
+
* @example "Production IP address pool for East US region"
|
|
44
|
+
*/
|
|
45
|
+
readonly description?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Optional friendly display name
|
|
48
|
+
* @example "East US Production Pool"
|
|
49
|
+
*/
|
|
50
|
+
readonly displayName?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Name of parent pool for hierarchical pools
|
|
53
|
+
* Leave empty/undefined for root pools
|
|
54
|
+
* @example "root-pool"
|
|
55
|
+
*/
|
|
56
|
+
readonly parentPoolName?: string;
|
|
57
|
+
/**
|
|
58
|
+
* The lifecycle rules to ignore changes
|
|
59
|
+
* @example ["tags"]
|
|
60
|
+
*/
|
|
61
|
+
readonly ignoreChanges?: string[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Properties for IPAM Pool body
|
|
65
|
+
*/
|
|
66
|
+
export interface IpamPoolProperties {
|
|
67
|
+
readonly addressPrefixes: string[];
|
|
68
|
+
readonly description?: string;
|
|
69
|
+
readonly displayName?: string;
|
|
70
|
+
readonly parentPoolName?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The resource body interface for Azure IPAM Pool API calls
|
|
74
|
+
*/
|
|
75
|
+
export interface IpamPoolBody {
|
|
76
|
+
readonly location: string;
|
|
77
|
+
readonly tags?: Record<string, string>;
|
|
78
|
+
readonly properties: IpamPoolProperties;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Azure Virtual Network Manager IPAM Pool implementation
|
|
82
|
+
*
|
|
83
|
+
* IPAM Pools provide centralized IP address management for virtual networks,
|
|
84
|
+
* enabling automatic CIDR allocation, overlap prevention, and hierarchical
|
|
85
|
+
* address space organization. They are essential for managing IP addresses
|
|
86
|
+
* at scale across multiple virtual networks and subscriptions.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* // Basic IPAM pool for production workloads:
|
|
90
|
+
* const ipamPool = new IpamPool(this, "prod-pool", {
|
|
91
|
+
* name: "production-pool",
|
|
92
|
+
* location: "eastus",
|
|
93
|
+
* networkManagerId: networkManager.id,
|
|
94
|
+
* addressPrefixes: ["10.0.0.0/8"],
|
|
95
|
+
* description: "Root IP address pool for production",
|
|
96
|
+
* displayName: "Production Pool"
|
|
97
|
+
* });
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* // Hierarchical pool with parent reference:
|
|
101
|
+
* const childPool = new IpamPool(this, "eastus-pool", {
|
|
102
|
+
* name: "eastus-pool",
|
|
103
|
+
* location: "eastus",
|
|
104
|
+
* networkManagerId: networkManager.id,
|
|
105
|
+
* addressPrefixes: ["10.1.0.0/16"],
|
|
106
|
+
* parentPoolName: "production-pool",
|
|
107
|
+
* description: "East US regional pool"
|
|
108
|
+
* });
|
|
109
|
+
*
|
|
110
|
+
* @stability stable
|
|
111
|
+
*/
|
|
112
|
+
export declare class IpamPool extends AzapiResource {
|
|
113
|
+
/**
|
|
114
|
+
* Validates address prefixes for format and overlap
|
|
115
|
+
* Throws descriptive errors if validation fails
|
|
116
|
+
*
|
|
117
|
+
* @param prefixes - Array of CIDR blocks to validate
|
|
118
|
+
* @throws Error if validation fails
|
|
119
|
+
*/
|
|
120
|
+
private static validateAddressPrefixes;
|
|
121
|
+
/**
|
|
122
|
+
* The input properties for this IPAM Pool instance
|
|
123
|
+
*/
|
|
124
|
+
readonly props: IpamPoolProps;
|
|
125
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
126
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
127
|
+
readonly locationOutput: cdktf.TerraformOutput;
|
|
128
|
+
readonly resourceName: string;
|
|
129
|
+
/**
|
|
130
|
+
* Creates a new Azure Virtual Network Manager IPAM Pool using the AzapiResource framework
|
|
131
|
+
*
|
|
132
|
+
* @param scope - The scope in which to define this construct
|
|
133
|
+
* @param id - The unique identifier for this instance
|
|
134
|
+
* @param props - Configuration properties for the IPAM Pool
|
|
135
|
+
*/
|
|
136
|
+
constructor(scope: Construct, id: string, props: IpamPoolProps);
|
|
137
|
+
/**
|
|
138
|
+
* Resolves the parent resource ID for the IPAM Pool
|
|
139
|
+
* IPAM Pools are scoped to Network Managers
|
|
140
|
+
*/
|
|
141
|
+
protected resolveParentId(props: any): string;
|
|
142
|
+
/**
|
|
143
|
+
* Gets the default API version to use when no explicit version is specified
|
|
144
|
+
*/
|
|
145
|
+
protected defaultVersion(): string;
|
|
146
|
+
/**
|
|
147
|
+
* Gets the Azure resource type for IPAM Pools
|
|
148
|
+
*/
|
|
149
|
+
protected resourceType(): string;
|
|
150
|
+
/**
|
|
151
|
+
* Gets the API schema for the resolved version
|
|
152
|
+
*/
|
|
153
|
+
protected apiSchema(): ApiSchema;
|
|
154
|
+
/**
|
|
155
|
+
* Creates the resource body for the Azure API call
|
|
156
|
+
*/
|
|
157
|
+
protected createResourceBody(props: any): any;
|
|
158
|
+
/**
|
|
159
|
+
* Calculate total number of IP addresses in this pool
|
|
160
|
+
* Sums up all addresses from all CIDR blocks
|
|
161
|
+
*
|
|
162
|
+
* @returns Total count of IP addresses across all prefixes
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* const pool = new IpamPool(this, "pool", {
|
|
166
|
+
* addressPrefixes: ["10.0.0.0/24", "10.1.0.0/24"]
|
|
167
|
+
* });
|
|
168
|
+
* console.log(pool.totalAddressCount); // 512 (256 + 256)
|
|
169
|
+
*/
|
|
170
|
+
get totalAddressCount(): number;
|
|
171
|
+
/**
|
|
172
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
173
|
+
*/
|
|
174
|
+
private _applyIgnoreChanges;
|
|
175
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.IpamPool = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Azure Virtual Network Manager IPAM Pool implementation using AzapiResource framework
|
|
8
|
+
*
|
|
9
|
+
* This class provides a unified implementation for Azure Virtual Network Manager IPAM Pools
|
|
10
|
+
* that automatically handles version management, schema validation, and property transformation
|
|
11
|
+
* across all supported API versions.
|
|
12
|
+
*
|
|
13
|
+
* Supported API Versions:
|
|
14
|
+
* - 2024-05-01 (Active, Latest)
|
|
15
|
+
*
|
|
16
|
+
* Features:
|
|
17
|
+
* - Automatic latest version resolution when no version is specified
|
|
18
|
+
* - Explicit version pinning for stability requirements
|
|
19
|
+
* - Schema-driven validation and transformation
|
|
20
|
+
* - CIDR validation and overlap detection
|
|
21
|
+
* - Hierarchical pool support
|
|
22
|
+
* - JSII compliance for multi-language support
|
|
23
|
+
*/
|
|
24
|
+
const cdktf = require("cdktf");
|
|
25
|
+
const ipam_pool_schemas_1 = require("./ipam-pool-schemas");
|
|
26
|
+
const cidr_validator_1 = require("./utils/cidr-validator");
|
|
27
|
+
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
28
|
+
/**
|
|
29
|
+
* Azure Virtual Network Manager IPAM Pool implementation
|
|
30
|
+
*
|
|
31
|
+
* IPAM Pools provide centralized IP address management for virtual networks,
|
|
32
|
+
* enabling automatic CIDR allocation, overlap prevention, and hierarchical
|
|
33
|
+
* address space organization. They are essential for managing IP addresses
|
|
34
|
+
* at scale across multiple virtual networks and subscriptions.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* // Basic IPAM pool for production workloads:
|
|
38
|
+
* const ipamPool = new IpamPool(this, "prod-pool", {
|
|
39
|
+
* name: "production-pool",
|
|
40
|
+
* location: "eastus",
|
|
41
|
+
* networkManagerId: networkManager.id,
|
|
42
|
+
* addressPrefixes: ["10.0.0.0/8"],
|
|
43
|
+
* description: "Root IP address pool for production",
|
|
44
|
+
* displayName: "Production Pool"
|
|
45
|
+
* });
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* // Hierarchical pool with parent reference:
|
|
49
|
+
* const childPool = new IpamPool(this, "eastus-pool", {
|
|
50
|
+
* name: "eastus-pool",
|
|
51
|
+
* location: "eastus",
|
|
52
|
+
* networkManagerId: networkManager.id,
|
|
53
|
+
* addressPrefixes: ["10.1.0.0/16"],
|
|
54
|
+
* parentPoolName: "production-pool",
|
|
55
|
+
* description: "East US regional pool"
|
|
56
|
+
* });
|
|
57
|
+
*
|
|
58
|
+
* @stability stable
|
|
59
|
+
*/
|
|
60
|
+
class IpamPool extends azapi_resource_1.AzapiResource {
|
|
61
|
+
/**
|
|
62
|
+
* Validates address prefixes for format and overlap
|
|
63
|
+
* Throws descriptive errors if validation fails
|
|
64
|
+
*
|
|
65
|
+
* @param prefixes - Array of CIDR blocks to validate
|
|
66
|
+
* @throws Error if validation fails
|
|
67
|
+
*/
|
|
68
|
+
static validateAddressPrefixes(prefixes) {
|
|
69
|
+
if (!prefixes || prefixes.length === 0) {
|
|
70
|
+
throw new Error("At least one address prefix is required");
|
|
71
|
+
}
|
|
72
|
+
// Validate each CIDR individually
|
|
73
|
+
prefixes.forEach((prefix, index) => {
|
|
74
|
+
if (!(0, cidr_validator_1.isValidCidr)(prefix)) {
|
|
75
|
+
throw new Error(`Invalid CIDR notation at index ${index}: ${prefix}. ` +
|
|
76
|
+
`Expected format: x.x.x.x/y where y is 0-32`);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
// Check for overlaps within the same pool
|
|
80
|
+
for (let i = 0; i < prefixes.length; i++) {
|
|
81
|
+
for (let j = i + 1; j < prefixes.length; j++) {
|
|
82
|
+
if ((0, cidr_validator_1.cidrsOverlap)(prefixes[i], prefixes[j])) {
|
|
83
|
+
throw new Error(`Address prefixes overlap: ${prefixes[i]} and ${prefixes[j]}. ` +
|
|
84
|
+
`Each CIDR block within a pool must be non-overlapping.`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Creates a new Azure Virtual Network Manager IPAM Pool using the AzapiResource framework
|
|
91
|
+
*
|
|
92
|
+
* @param scope - The scope in which to define this construct
|
|
93
|
+
* @param id - The unique identifier for this instance
|
|
94
|
+
* @param props - Configuration properties for the IPAM Pool
|
|
95
|
+
*/
|
|
96
|
+
constructor(scope, id, props) {
|
|
97
|
+
// Validate CIDR prefixes before construction
|
|
98
|
+
IpamPool.validateAddressPrefixes(props.addressPrefixes);
|
|
99
|
+
super(scope, id, props);
|
|
100
|
+
this.props = props;
|
|
101
|
+
// Extract properties from the AZAPI resource outputs using Terraform interpolation
|
|
102
|
+
this.resourceName = `\${${this.terraformResource.fqn}.name}`;
|
|
103
|
+
// Create Terraform outputs for easy access and referencing from other resources
|
|
104
|
+
this.idOutput = new cdktf.TerraformOutput(this, "id", {
|
|
105
|
+
value: this.id,
|
|
106
|
+
description: "The ID of the IPAM Pool",
|
|
107
|
+
});
|
|
108
|
+
this.nameOutput = new cdktf.TerraformOutput(this, "name", {
|
|
109
|
+
value: this.resourceName,
|
|
110
|
+
description: "The name of the IPAM Pool",
|
|
111
|
+
});
|
|
112
|
+
this.locationOutput = new cdktf.TerraformOutput(this, "location", {
|
|
113
|
+
value: `\${${this.terraformResource.fqn}.location}`,
|
|
114
|
+
description: "The location of the IPAM Pool",
|
|
115
|
+
});
|
|
116
|
+
// Override logical IDs to match naming convention
|
|
117
|
+
this.idOutput.overrideLogicalId("id");
|
|
118
|
+
this.nameOutput.overrideLogicalId("name");
|
|
119
|
+
this.locationOutput.overrideLogicalId("location");
|
|
120
|
+
// Apply ignore changes if specified
|
|
121
|
+
this._applyIgnoreChanges();
|
|
122
|
+
}
|
|
123
|
+
// =============================================================================
|
|
124
|
+
// REQUIRED ABSTRACT METHODS FROM AzapiResource
|
|
125
|
+
// =============================================================================
|
|
126
|
+
/**
|
|
127
|
+
* Resolves the parent resource ID for the IPAM Pool
|
|
128
|
+
* IPAM Pools are scoped to Network Managers
|
|
129
|
+
*/
|
|
130
|
+
resolveParentId(props) {
|
|
131
|
+
const typedProps = props;
|
|
132
|
+
return typedProps.networkManagerId;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Gets the default API version to use when no explicit version is specified
|
|
136
|
+
*/
|
|
137
|
+
defaultVersion() {
|
|
138
|
+
return "2024-05-01";
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Gets the Azure resource type for IPAM Pools
|
|
142
|
+
*/
|
|
143
|
+
resourceType() {
|
|
144
|
+
return ipam_pool_schemas_1.IPAM_POOL_TYPE;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Gets the API schema for the resolved version
|
|
148
|
+
*/
|
|
149
|
+
apiSchema() {
|
|
150
|
+
return this.resolveSchema();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Creates the resource body for the Azure API call
|
|
154
|
+
*/
|
|
155
|
+
createResourceBody(props) {
|
|
156
|
+
const typedProps = props;
|
|
157
|
+
return {
|
|
158
|
+
location: typedProps.location,
|
|
159
|
+
tags: this.allTags(),
|
|
160
|
+
properties: {
|
|
161
|
+
addressPrefixes: typedProps.addressPrefixes,
|
|
162
|
+
description: typedProps.description,
|
|
163
|
+
displayName: typedProps.displayName,
|
|
164
|
+
parentPoolName: typedProps.parentPoolName,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// =============================================================================
|
|
169
|
+
// PUBLIC METHODS FOR IPAM POOL OPERATIONS
|
|
170
|
+
// =============================================================================
|
|
171
|
+
/**
|
|
172
|
+
* Calculate total number of IP addresses in this pool
|
|
173
|
+
* Sums up all addresses from all CIDR blocks
|
|
174
|
+
*
|
|
175
|
+
* @returns Total count of IP addresses across all prefixes
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* const pool = new IpamPool(this, "pool", {
|
|
179
|
+
* addressPrefixes: ["10.0.0.0/24", "10.1.0.0/24"]
|
|
180
|
+
* });
|
|
181
|
+
* console.log(pool.totalAddressCount); // 512 (256 + 256)
|
|
182
|
+
*/
|
|
183
|
+
get totalAddressCount() {
|
|
184
|
+
return this.props.addressPrefixes.reduce((sum, cidr) => sum + (0, cidr_validator_1.calculateAddressCount)(cidr), 0);
|
|
185
|
+
}
|
|
186
|
+
// =============================================================================
|
|
187
|
+
// PRIVATE HELPER METHODS
|
|
188
|
+
// =============================================================================
|
|
189
|
+
/**
|
|
190
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
191
|
+
*/
|
|
192
|
+
_applyIgnoreChanges() {
|
|
193
|
+
if (this.props.ignoreChanges && this.props.ignoreChanges.length > 0) {
|
|
194
|
+
this.terraformResource.addOverride("lifecycle", {
|
|
195
|
+
ignore_changes: this.props.ignoreChanges,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.IpamPool = IpamPool;
|
|
201
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
202
|
+
IpamPool[_a] = { fqn: "@microsoft/terraform-cdk-constructs.IpamPool", version: "1.4.0" };
|
|
203
|
+
(() => {
|
|
204
|
+
azapi_resource_1.AzapiResource.registerSchemas(ipam_pool_schemas_1.IPAM_POOL_TYPE, ipam_pool_schemas_1.ALL_IPAM_POOL_VERSIONS);
|
|
205
|
+
})();
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhbS1wb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXZpcnR1YWxuZXR3b3JrbWFuYWdlci9saWIvaXBhbS1wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBRUgsK0JBQStCO0FBRS9CLDJEQUE2RTtBQUM3RSwyREFJZ0M7QUFDaEMsOEVBR21EO0FBb0VuRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQUNILE1BQWEsUUFBUyxTQUFRLDhCQUFhO0lBS3pDOzs7Ozs7T0FNRztJQUNLLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxRQUFrQjtRQUN2RCxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBQSw0QkFBVyxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0NBQWtDLEtBQUssS0FBSyxNQUFNLElBQUk7b0JBQ3BELDRDQUE0QyxDQUMvQyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsMENBQTBDO1FBQzFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzdDLElBQUksSUFB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QUMxQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLDBDQUEwQztJQUMxQyxnRkFBZ0Y7SUFFaEY7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDdEMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBQSxzQ0FBcUIsRUFBQyxJQUFJLENBQUMsRUFDaEQsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLHlCQUF5QjtJQUN6QixnRkFBZ0Y7SUFFaEY7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzlDLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7YUFDekMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBdkxILDRCQXdMQzs7O0FBdkxDO0lBQ0UsOEJBQWEsQ0FBQyxlQUFlLENBQUMsa0NBQWMsRUFBRSwwQ0FBc0IsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsR0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBenVyZSBWaXJ0dWFsIE5ldHdvcmsgTWFuYWdlciBJUEFNIFBvb2wgaW1wbGVtZW50YXRpb24gdXNpbmcgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgdW5pZmllZCBpbXBsZW1lbnRhdGlvbiBmb3IgQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIgSVBBTSBQb29sc1xuICogdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiBtYW5hZ2VtZW50LCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uXG4gKiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyNC0wNS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIEF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uIHdoZW4gbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAqIC0gRXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nIGZvciBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzXG4gKiAtIFNjaGVtYS1kcml2ZW4gdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb25cbiAqIC0gQ0lEUiB2YWxpZGF0aW9uIGFuZCBvdmVybGFwIGRldGVjdGlvblxuICogLSBIaWVyYXJjaGljYWwgcG9vbCBzdXBwb3J0XG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFMTF9JUEFNX1BPT0xfVkVSU0lPTlMsIElQQU1fUE9PTF9UWVBFIH0gZnJvbSBcIi4vaXBhbS1wb29sLXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIGlzVmFsaWRDaWRyLFxuICBjaWRyc092ZXJsYXAsXG4gIGNhbGN1bGF0ZUFkZHJlc3NDb3VudCxcbn0gZnJvbSBcIi4vdXRpbHMvY2lkci12YWxpZGF0b3JcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIEF6dXJlIFZpcnR1YWwgTmV0d29yayBNYW5hZ2VyIElQQU0gUG9vbFxuICpcbiAqIEV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHdpdGggSVBBTSBQb29sIHNwZWNpZmljIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcGFtUG9vbFByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIElEIG9mIHRoZSBwYXJlbnQgTmV0d29yayBNYW5hZ2VyXG4gICAqIEBleGFtcGxlIFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9uZXR3b3JrTWFuYWdlcnMvdm5tXCJcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNYW5hZ2VySWQ6IHN0cmluZztcblxuICAvKipcbiAgICogSVAgYWRkcmVzcyBwcmVmaXhlcyBmb3IgdGhlIHBvb2xcbiAgICogTXVzdCBiZSB2YWxpZCBDSURSIG5vdGF0aW9uIChlLmcuLCBcIjEwLjAuMC4wLzhcIilcbiAgICogTXVsdGlwbGUgcHJlZml4ZXMgbXVzdCBub3Qgb3ZlcmxhcFxuICAgKiBAZXhhbXBsZSBbXCIxMC4wLjAuMC84XCIsIFwiMTcyLjE2LjAuMC8xMlwiXVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkcmVzc1ByZWZpeGVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGVzY3JpcHRpb24gb2YgdGhlIElQQU0gcG9vbFxuICAgKiBAZXhhbXBsZSBcIlByb2R1Y3Rpb24gSVAgYWRkcmVzcyBwb29sIGZvciBFYXN0IFVTIHJlZ2lvblwiXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZnJpZW5kbHkgZGlzcGxheSBuYW1lXG4gICAqIEBleGFtcGxlIFwiRWFzdCBVUyBQcm9kdWN0aW9uIFBvb2xcIlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgcGFyZW50IHBvb2wgZm9yIGhpZXJhcmNoaWNhbCBwb29sc1xuICAgKiBMZWF2ZSBlbXB0eS91bmRlZmluZWQgZm9yIHJvb3QgcG9vbHNcbiAgICogQGV4YW1wbGUgXCJyb290LXBvb2xcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyZW50UG9vbE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZlY3ljbGUgcnVsZXMgdG8gaWdub3JlIGNoYW5nZXNcbiAgICogQGV4YW1wbGUgW1widGFnc1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIElQQU0gUG9vbCBib2R5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXBhbVBvb2xQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgYWRkcmVzc1ByZWZpeGVzOiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBwYXJlbnRQb29sTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIElQQU0gUG9vbCBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcGFtUG9vbEJvZHkge1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogSXBhbVBvb2xQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIEF6dXJlIFZpcnR1YWwgTmV0d29yayBNYW5hZ2VyIElQQU0gUG9vbCBpbXBsZW1lbnRhdGlvblxuICpcbiAqIElQQU0gUG9vbHMgcHJvdmlkZSBjZW50cmFsaXplZCBJUCBhZGRyZXNzIG1hbmFnZW1lbnQgZm9yIHZpcnR1YWwgbmV0d29ya3MsXG4gKiBlbmFibGluZyBhdXRvbWF0aWMgQ0lEUiBhbGxvY2F0aW9uLCBvdmVybGFwIHByZXZlbnRpb24sIGFuZCBoaWVyYXJjaGljYWxcbiAqIGFkZHJlc3Mgc3BhY2Ugb3JnYW5pemF0aW9uLiBUaGV5IGFyZSBlc3NlbnRpYWwgZm9yIG1hbmFnaW5nIElQIGFkZHJlc3Nlc1xuICogYXQgc2NhbGUgYWNyb3NzIG11bHRpcGxlIHZpcnR1YWwgbmV0d29ya3MgYW5kIHN1YnNjcmlwdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIElQQU0gcG9vbCBmb3IgcHJvZHVjdGlvbiB3b3JrbG9hZHM6XG4gKiBjb25zdCBpcGFtUG9vbCA9IG5ldyBJcGFtUG9vbCh0aGlzLCBcInByb2QtcG9vbFwiLCB7XG4gKiAgIG5hbWU6IFwicHJvZHVjdGlvbi1wb29sXCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICBuZXR3b3JrTWFuYWdlcklkOiBuZXR3b3JrTWFuYWdlci5pZCxcbiAqICAgYWRkcmVzc1ByZWZpeGVzOiBbXCIxMC4wLjAuMC84XCJdLFxuICogICBkZXNjcmlwdGlvbjogXCJSb290IElQIGFkZHJlc3MgcG9vbCBmb3IgcHJvZHVjdGlvblwiLFxuICogICBkaXNwbGF5TmFtZTogXCJQcm9kdWN0aW9uIFBvb2xcIlxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEhpZXJhcmNoaWNhbCBwb29sIHdpdGggcGFyZW50IHJlZmVyZW5jZTpcbiAqIGNvbnN0IGNoaWxkUG9vbCA9IG5ldyBJcGFtUG9vbCh0aGlzLCBcImVhc3R1cy1wb29sXCIsIHtcbiAqICAgbmFtZTogXCJlYXN0dXMtcG9vbFwiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgbmV0d29ya01hbmFnZXJJZDogbmV0d29ya01hbmFnZXIuaWQsXG4gKiAgIGFkZHJlc3NQcmVmaXhlczogW1wiMTAuMS4wLjAvMTZcIl0sXG4gKiAgIHBhcmVudFBvb2xOYW1lOiBcInByb2R1Y3Rpb24tcG9vbFwiLFxuICogICBkZXNjcmlwdGlvbjogXCJFYXN0IFVTIHJlZ2lvbmFsIHBvb2xcIlxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIElwYW1Qb29sIGV4dGVuZHMgQXphcGlSZXNvdXJjZSB7XG4gIHN0YXRpYyB7XG4gICAgQXphcGlSZXNvdXJjZS5yZWdpc3RlclNjaGVtYXMoSVBBTV9QT09MX1RZUEUsIEFMTF9JUEFNX1BPT0xfVkVSU0lPTlMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhZGRyZXNzIHByZWZpeGVzIGZvciBmb3JtYXQgYW5kIG92ZXJsYXBcbiAgICogVGhyb3dzIGRlc2NyaXB0aXZlIGVycm9ycyBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gICAqXG4gICAqIEBwYXJhbSBwcmVmaXhlcyAtIEFycmF5IG9mIENJRFIgYmxvY2tzIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdmFsaWRhdGlvbiBmYWlsc1xuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGVBZGRyZXNzUHJlZml4ZXMocHJlZml4ZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgaWYgKCFwcmVmaXhlcyB8fCBwcmVmaXhlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkF0IGxlYXN0IG9uZSBhZGRyZXNzIHByZWZpeCBpcyByZXF1aXJlZFwiKTtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBlYWNoIENJRFIgaW5kaXZpZHVhbGx5XG4gICAgcHJlZml4ZXMuZm9yRWFjaCgocHJlZml4LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKCFpc1ZhbGlkQ2lkcihwcmVmaXgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBDSURSIG5vdGF0aW9uIGF0IGluZGV4ICR7aW5kZXh9OiAke3ByZWZpeH0uIGAgK1xuICAgICAgICAgICAgYEV4cGVjdGVkIGZvcm1hdDogeC54LngueC95IHdoZXJlIHkgaXMgMC0zMmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBDaGVjayBmb3Igb3ZlcmxhcHMgd2l0aGluIHRoZSBzYW1lIHBvb2xcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZWZpeGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBwcmVmaXhlcy5sZW5ndGg7IGorKykge1xuICAgICAgICBpZiAoY2lkcnNPdmVybGFwKHByZWZpeGVzW2ldLCBwcmVmaXhlc1tqXSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQWRkcmVzcyBwcmVmaXhlcyBvdmVybGFwOiAke3ByZWZpeGVzW2ldfSBhbmQgJHtwcmVmaXhlc1tqXX0uIGAgK1xuICAgICAgICAgICAgICBgRWFjaCBDSURSIGJsb2NrIHdpdGhpbiBhIHBvb2wgbXVzdCBiZSBub24tb3ZlcmxhcHBpbmcuYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBwcm9wZXJ0aWVzIGZvciB0aGlzIElQQU0gUG9vbCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBJcGFtUG9vbFByb3BzO1xuXG4gIC8vIE91dHB1dCBwcm9wZXJ0aWVzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmdcbiAgcHVibGljIHJlYWRvbmx5IGlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBsb2NhdGlvbk91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuXG4gIC8vIFB1YmxpYyBwcm9wZXJ0aWVzXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBBenVyZSBWaXJ0dWFsIE5ldHdvcmsgTWFuYWdlciBJUEFNIFBvb2wgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIElQQU0gUG9vbFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElwYW1Qb29sUHJvcHMpIHtcbiAgICAvLyBWYWxpZGF0ZSBDSURSIHByZWZpeGVzIGJlZm9yZSBjb25zdHJ1Y3Rpb25cbiAgICBJcGFtUG9vbC52YWxpZGF0ZUFkZHJlc3NQcmVmaXhlcyhwcm9wcy5hZGRyZXNzUHJlZml4ZXMpO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBFeHRyYWN0IHByb3BlcnRpZXMgZnJvbSB0aGUgQVpBUEkgcmVzb3VyY2Ugb3V0cHV0cyB1c2luZyBUZXJyYWZvcm0gaW50ZXJwb2xhdGlvblxuICAgIHRoaXMucmVzb3VyY2VOYW1lID0gYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWA7XG5cbiAgICAvLyBDcmVhdGUgVGVycmFmb3JtIG91dHB1dHMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZyBmcm9tIG90aGVyIHJlc291cmNlc1xuICAgIHRoaXMuaWRPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiaWRcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgSUQgb2YgdGhlIElQQU0gUG9vbFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IHRoaXMucmVzb3VyY2VOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIElQQU0gUG9vbFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2NhdGlvbk91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJsb2NhdGlvblwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5sb2NhdGlvbn1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGxvY2F0aW9uIG9mIHRoZSBJUEFNIFBvb2xcIixcbiAgICB9KTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzIHRvIG1hdGNoIG5hbWluZyBjb252ZW50aW9uXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubmFtZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcIm5hbWVcIik7XG4gICAgdGhpcy5sb2NhdGlvbk91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImxvY2F0aW9uXCIpO1xuXG4gICAgLy8gQXBwbHkgaWdub3JlIGNoYW5nZXMgaWYgc3BlY2lmaWVkXG4gICAgdGhpcy5fYXBwbHlJZ25vcmVDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBSRVFVSVJFRCBBQlNUUkFDVCBNRVRIT0RTIEZST00gQXphcGlSZXNvdXJjZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgcGFyZW50IHJlc291cmNlIElEIGZvciB0aGUgSVBBTSBQb29sXG4gICAqIElQQU0gUG9vbHMgYXJlIHNjb3BlZCB0byBOZXR3b3JrIE1hbmFnZXJzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZVBhcmVudElkKHByb3BzOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBJcGFtUG9vbFByb3BzO1xuICAgIHJldHVybiB0eXBlZFByb3BzLm5ldHdvcmtNYW5hZ2VySWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB0byB1c2Ugd2hlbiBubyBleHBsaWNpdCB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgKi9cbiAgcHJvdGVjdGVkIGRlZmF1bHRWZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiMjAyNC0wNS0wMVwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEF6dXJlIHJlc291cmNlIHR5cGUgZm9yIElQQU0gUG9vbHNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSVBBTV9QT09MX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQVBJIHNjaGVtYSBmb3IgdGhlIHJlc29sdmVkIHZlcnNpb25cbiAgICovXG4gIHByb3RlY3RlZCBhcGlTY2hlbWEoKTogQXBpU2NoZW1hIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2NoZW1hKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgcmVzb3VyY2UgYm9keSBmb3IgdGhlIEF6dXJlIEFQSSBjYWxsXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBJcGFtUG9vbFByb3BzO1xuICAgIHJldHVybiB7XG4gICAgICBsb2NhdGlvbjogdHlwZWRQcm9wcy5sb2NhdGlvbixcbiAgICAgIHRhZ3M6IHRoaXMuYWxsVGFncygpLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBhZGRyZXNzUHJlZml4ZXM6IHR5cGVkUHJvcHMuYWRkcmVzc1ByZWZpeGVzLFxuICAgICAgICBkZXNjcmlwdGlvbjogdHlwZWRQcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgZGlzcGxheU5hbWU6IHR5cGVkUHJvcHMuZGlzcGxheU5hbWUsXG4gICAgICAgIHBhcmVudFBvb2xOYW1lOiB0eXBlZFByb3BzLnBhcmVudFBvb2xOYW1lLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFVCTElDIE1FVEhPRFMgRk9SIElQQU0gUE9PTCBPUEVSQVRJT05TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0b3RhbCBudW1iZXIgb2YgSVAgYWRkcmVzc2VzIGluIHRoaXMgcG9vbFxuICAgKiBTdW1zIHVwIGFsbCBhZGRyZXNzZXMgZnJvbSBhbGwgQ0lEUiBibG9ja3NcbiAgICpcbiAgICogQHJldHVybnMgVG90YWwgY291bnQgb2YgSVAgYWRkcmVzc2VzIGFjcm9zcyBhbGwgcHJlZml4ZXNcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgcG9vbCA9IG5ldyBJcGFtUG9vbCh0aGlzLCBcInBvb2xcIiwge1xuICAgKiAgIGFkZHJlc3NQcmVmaXhlczogW1wiMTAuMC4wLjAvMjRcIiwgXCIxMC4xLjAuMC8yNFwiXVxuICAgKiB9KTtcbiAgICogY29uc29sZS5sb2cocG9vbC50b3RhbEFkZHJlc3NDb3VudCk7IC8vIDUxMiAoMjU2ICsgMjU2KVxuICAgKi9cbiAgcHVibGljIGdldCB0b3RhbEFkZHJlc3NDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmFkZHJlc3NQcmVmaXhlcy5yZWR1Y2UoXG4gICAgICAoc3VtLCBjaWRyKSA9PiBzdW0gKyBjYWxjdWxhdGVBZGRyZXNzQ291bnQoY2lkciksXG4gICAgICAwLFxuICAgICk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUklWQVRFIEhFTFBFUiBNRVRIT0RTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzIGlmIHNwZWNpZmllZCBpbiBwcm9wc1xuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlJZ25vcmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMgJiYgdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwge1xuICAgICAgICBpZ25vcmVfY2hhbmdlczogdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -156,7 +156,7 @@ class NetworkGroupStaticMember extends azapi_resource_1.AzapiResource {
|
|
|
156
156
|
}
|
|
157
157
|
exports.NetworkGroupStaticMember = NetworkGroupStaticMember;
|
|
158
158
|
_a = JSII_RTTI_SYMBOL_1;
|
|
159
|
-
NetworkGroupStaticMember[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkGroupStaticMember", version: "1.
|
|
159
|
+
NetworkGroupStaticMember[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkGroupStaticMember", version: "1.4.0" };
|
|
160
160
|
(() => {
|
|
161
161
|
azapi_resource_1.AzapiResource.registerSchemas(network_group_static_member_schemas_1.STATIC_MEMBER_TYPE, network_group_static_member_schemas_1.ALL_STATIC_MEMBER_VERSIONS);
|
|
162
162
|
})();
|
|
@@ -151,7 +151,7 @@ class NetworkGroup extends azapi_resource_1.AzapiResource {
|
|
|
151
151
|
}
|
|
152
152
|
exports.NetworkGroup = NetworkGroup;
|
|
153
153
|
_a = JSII_RTTI_SYMBOL_1;
|
|
154
|
-
NetworkGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkGroup", version: "1.
|
|
154
|
+
NetworkGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkGroup", version: "1.4.0" };
|
|
155
155
|
(() => {
|
|
156
156
|
azapi_resource_1.AzapiResource.registerSchemas(network_group_schemas_1.NETWORK_GROUP_TYPE, network_group_schemas_1.ALL_NETWORK_GROUP_VERSIONS);
|
|
157
157
|
})();
|
|
@@ -157,7 +157,7 @@ class SecurityAdminConfiguration extends azapi_resource_1.AzapiResource {
|
|
|
157
157
|
}
|
|
158
158
|
exports.SecurityAdminConfiguration = SecurityAdminConfiguration;
|
|
159
159
|
_a = JSII_RTTI_SYMBOL_1;
|
|
160
|
-
SecurityAdminConfiguration[_a] = { fqn: "@microsoft/terraform-cdk-constructs.SecurityAdminConfiguration", version: "1.
|
|
160
|
+
SecurityAdminConfiguration[_a] = { fqn: "@microsoft/terraform-cdk-constructs.SecurityAdminConfiguration", version: "1.4.0" };
|
|
161
161
|
(() => {
|
|
162
162
|
azapi_resource_1.AzapiResource.registerSchemas(security_admin_configuration_schemas_1.SECURITY_ADMIN_CONFIGURATION_TYPE, security_admin_configuration_schemas_1.ALL_SECURITY_ADMIN_CONFIGURATION_VERSIONS);
|
|
163
163
|
})();
|
|
@@ -155,7 +155,7 @@ class SecurityAdminRuleCollection extends azapi_resource_1.AzapiResource {
|
|
|
155
155
|
}
|
|
156
156
|
exports.SecurityAdminRuleCollection = SecurityAdminRuleCollection;
|
|
157
157
|
_a = JSII_RTTI_SYMBOL_1;
|
|
158
|
-
SecurityAdminRuleCollection[_a] = { fqn: "@microsoft/terraform-cdk-constructs.SecurityAdminRuleCollection", version: "1.
|
|
158
|
+
SecurityAdminRuleCollection[_a] = { fqn: "@microsoft/terraform-cdk-constructs.SecurityAdminRuleCollection", version: "1.4.0" };
|
|
159
159
|
(() => {
|
|
160
160
|
azapi_resource_1.AzapiResource.registerSchemas(security_admin_rule_collection_schemas_1.RULE_COLLECTION_TYPE, security_admin_rule_collection_schemas_1.ALL_RULE_COLLECTION_VERSIONS);
|
|
161
161
|
})();
|
|
@@ -197,7 +197,7 @@ class SecurityAdminRule extends azapi_resource_1.AzapiResource {
|
|
|
197
197
|
}
|
|
198
198
|
exports.SecurityAdminRule = SecurityAdminRule;
|
|
199
199
|
_a = JSII_RTTI_SYMBOL_1;
|
|
200
|
-
SecurityAdminRule[_a] = { fqn: "@microsoft/terraform-cdk-constructs.SecurityAdminRule", version: "1.
|
|
200
|
+
SecurityAdminRule[_a] = { fqn: "@microsoft/terraform-cdk-constructs.SecurityAdminRule", version: "1.4.0" };
|
|
201
201
|
(() => {
|
|
202
202
|
azapi_resource_1.AzapiResource.registerSchemas(security_admin_rule_schemas_1.SECURITY_ADMIN_RULE_TYPE, security_admin_rule_schemas_1.ALL_SECURITY_ADMIN_RULE_VERSIONS);
|
|
203
203
|
})();
|