@microsoft/terraform-cdk-constructs 1.2.0 → 1.3.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 +54846 -26661
- package/API.md +72091 -23784
- package/lib/azure-actiongroup/index.d.ts +0 -10
- package/lib/azure-actiongroup/index.js +1 -11
- package/lib/azure-actiongroup/lib/action-group.d.ts +0 -10
- package/lib/azure-actiongroup/lib/action-group.js +6 -32
- package/lib/azure-actiongroup/lib/index.d.ts +1 -4
- package/lib/azure-actiongroup/lib/index.js +2 -5
- package/lib/azure-activitylogalert/index.d.ts +0 -10
- package/lib/azure-activitylogalert/index.js +1 -11
- package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +0 -10
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +6 -32
- package/lib/azure-activitylogalert/lib/index.d.ts +1 -4
- package/lib/azure-activitylogalert/lib/index.js +2 -5
- package/lib/azure-aks/index.d.ts +0 -8
- package/lib/azure-aks/index.js +1 -11
- package/lib/azure-aks/lib/aks-cluster.d.ts +4 -13
- package/lib/azure-aks/lib/aks-cluster.js +13 -36
- package/lib/azure-aks/lib/index.d.ts +1 -10
- package/lib/azure-aks/lib/index.js +2 -21
- package/lib/azure-diagnosticsettings/index.d.ts +0 -6
- package/lib/azure-diagnosticsettings/index.js +1 -7
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +0 -10
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +6 -32
- package/lib/azure-diagnosticsettings/lib/index.d.ts +1 -7
- package/lib/azure-diagnosticsettings/lib/index.js +2 -8
- package/lib/azure-dnsforwardingruleset/index.d.ts +1 -0
- package/lib/azure-dnsforwardingruleset/index.js +18 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.d.ts +24 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.js +206 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +174 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +214 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.d.ts +24 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.js +242 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +193 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +193 -0
- package/lib/azure-dnsforwardingruleset/lib/index.d.ts +6 -0
- package/lib/azure-dnsforwardingruleset/lib/index.js +23 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.d.ts +24 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.js +199 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +160 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +178 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +133 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +350 -0
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +397 -0
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +285 -0
- package/lib/azure-dnsresolver/index.d.ts +1 -0
- package/lib/azure-dnsresolver/index.js +18 -0
- package/lib/azure-dnsresolver/lib/dns-resolver-schemas.d.ts +24 -0
- package/lib/azure-dnsresolver/lib/dns-resolver-schemas.js +218 -0
- package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +170 -0
- package/lib/azure-dnsresolver/lib/dns-resolver.js +236 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.d.ts +24 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.js +261 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +189 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +243 -0
- package/lib/azure-dnsresolver/lib/index.d.ts +6 -0
- package/lib/azure-dnsresolver/lib/index.js +23 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.d.ts +24 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.js +231 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +175 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +234 -0
- package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +14 -0
- package/lib/azure-dnsresolver/test/dns-resolver.integ.js +117 -0
- package/lib/azure-dnsresolver/test/dns-resolver.spec.d.ts +9 -0
- package/lib/azure-dnsresolver/test/dns-resolver.spec.js +353 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +9 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +151 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.d.ts +9 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +441 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +9 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +149 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.d.ts +9 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +301 -0
- package/lib/azure-dnszone/index.d.ts +1 -0
- package/lib/azure-dnszone/index.js +18 -0
- package/lib/azure-dnszone/lib/dns-zone-schemas.d.ts +24 -0
- package/lib/azure-dnszone/lib/dns-zone-schemas.js +191 -0
- package/lib/azure-dnszone/lib/dns-zone.d.ts +182 -0
- package/lib/azure-dnszone/lib/dns-zone.js +228 -0
- package/lib/azure-dnszone/lib/index.d.ts +2 -0
- package/lib/azure-dnszone/lib/index.js +19 -0
- package/lib/azure-dnszone/test/dns-zone.integ.d.ts +9 -0
- package/lib/azure-dnszone/test/dns-zone.integ.js +85 -0
- package/lib/azure-dnszone/test/dns-zone.spec.d.ts +9 -0
- package/lib/azure-dnszone/test/dns-zone.spec.js +285 -0
- package/lib/azure-metricalert/index.d.ts +0 -10
- package/lib/azure-metricalert/index.js +1 -11
- package/lib/azure-metricalert/lib/index.d.ts +1 -4
- package/lib/azure-metricalert/lib/index.js +2 -5
- package/lib/azure-metricalert/lib/metric-alert.d.ts +0 -10
- package/lib/azure-metricalert/lib/metric-alert.js +6 -32
- package/lib/azure-networkinterface/index.d.ts +0 -3
- package/lib/azure-networkinterface/index.js +1 -4
- package/lib/azure-networkinterface/lib/index.d.ts +1 -5
- package/lib/azure-networkinterface/lib/index.js +2 -5
- package/lib/azure-networkinterface/lib/network-interface.d.ts +4 -9
- package/lib/azure-networkinterface/lib/network-interface.js +14 -29
- package/lib/azure-networkinterface/test/network-interface.integ.js +20 -6
- package/lib/azure-networksecuritygroup/index.d.ts +0 -5
- package/lib/azure-networksecuritygroup/index.js +1 -6
- package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -5
- package/lib/azure-networksecuritygroup/lib/index.js +17 -14
- package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +4 -13
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +14 -36
- package/lib/azure-policyassignment/index.d.ts +1 -0
- package/lib/azure-policyassignment/index.js +18 -0
- package/lib/azure-policyassignment/lib/index.d.ts +2 -0
- package/lib/azure-policyassignment/lib/index.js +19 -0
- package/lib/azure-policyassignment/lib/policy-assignment-schemas.d.ts +25 -0
- package/lib/azure-policyassignment/lib/policy-assignment-schemas.js +260 -0
- package/lib/azure-policyassignment/lib/policy-assignment.d.ts +342 -0
- package/lib/azure-policyassignment/lib/policy-assignment.js +228 -0
- package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +13 -0
- package/lib/azure-policyassignment/test/policy-assignment.integ.js +153 -0
- package/lib/azure-policyassignment/test/policy-assignment.spec.d.ts +9 -0
- package/lib/azure-policyassignment/test/policy-assignment.spec.js +651 -0
- package/lib/azure-policydefinition/index.d.ts +1 -0
- package/lib/azure-policydefinition/index.js +18 -0
- package/lib/azure-policydefinition/lib/index.d.ts +2 -0
- package/lib/azure-policydefinition/lib/index.js +19 -0
- package/lib/azure-policydefinition/lib/policy-definition-schemas.d.ts +25 -0
- package/lib/azure-policydefinition/lib/policy-definition-schemas.js +210 -0
- package/lib/azure-policydefinition/lib/policy-definition.d.ts +260 -0
- package/lib/azure-policydefinition/lib/policy-definition.js +199 -0
- package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +9 -0
- package/lib/azure-policydefinition/test/policy-definition.integ.js +137 -0
- package/lib/azure-policydefinition/test/policy-definition.spec.d.ts +9 -0
- package/lib/azure-policydefinition/test/policy-definition.spec.js +596 -0
- package/lib/azure-privatednszone/index.d.ts +1 -0
- package/lib/azure-privatednszone/index.js +18 -0
- package/lib/azure-privatednszone/lib/index.d.ts +2 -0
- package/lib/azure-privatednszone/lib/index.js +19 -0
- package/lib/azure-privatednszone/lib/private-dns-zone-schemas.d.ts +24 -0
- package/lib/azure-privatednszone/lib/private-dns-zone-schemas.js +254 -0
- package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +178 -0
- package/lib/azure-privatednszone/lib/private-dns-zone.js +272 -0
- package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +9 -0
- package/lib/azure-privatednszone/test/private-dns-zone.integ.js +84 -0
- package/lib/azure-privatednszone/test/private-dns-zone.spec.d.ts +9 -0
- package/lib/azure-privatednszone/test/private-dns-zone.spec.js +341 -0
- package/lib/azure-privatednszonelink/index.d.ts +1 -0
- package/lib/azure-privatednszonelink/index.js +18 -0
- package/lib/azure-privatednszonelink/lib/index.d.ts +2 -0
- package/lib/azure-privatednszonelink/lib/index.js +19 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.d.ts +24 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.js +262 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +202 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +250 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +9 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +110 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.d.ts +9 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +465 -0
- package/lib/azure-publicipaddress/index.d.ts +0 -5
- package/lib/azure-publicipaddress/index.js +1 -6
- package/lib/azure-publicipaddress/lib/index.d.ts +2 -9
- package/lib/azure-publicipaddress/lib/index.js +17 -17
- package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +4 -13
- package/lib/azure-publicipaddress/lib/public-ip-address.js +14 -36
- package/lib/azure-resourcegroup/index.d.ts +0 -37
- package/lib/azure-resourcegroup/index.js +1 -39
- package/lib/azure-resourcegroup/lib/index.d.ts +1 -44
- package/lib/azure-resourcegroup/lib/index.js +2 -43
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +9 -23
- package/lib/azure-resourcegroup/lib/resource-group.js +23 -56
- package/lib/azure-resourcegroup/test/resource-group.spec.js +13 -19
- package/lib/azure-roleassignment/index.d.ts +1 -0
- package/lib/azure-roleassignment/index.js +18 -0
- package/lib/azure-roleassignment/lib/index.d.ts +2 -0
- package/lib/azure-roleassignment/lib/index.js +19 -0
- package/lib/azure-roleassignment/lib/role-assignment-schemas.d.ts +25 -0
- package/lib/azure-roleassignment/lib/role-assignment-schemas.js +238 -0
- package/lib/azure-roleassignment/lib/role-assignment.d.ts +294 -0
- package/lib/azure-roleassignment/lib/role-assignment.js +257 -0
- package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +12 -0
- package/lib/azure-roleassignment/test/role-assignment.integ.js +101 -0
- package/lib/azure-roleassignment/test/role-assignment.spec.d.ts +9 -0
- package/lib/azure-roleassignment/test/role-assignment.spec.js +633 -0
- package/lib/azure-roledefinition/index.d.ts +1 -0
- package/lib/azure-roledefinition/index.js +18 -0
- package/lib/azure-roledefinition/lib/index.d.ts +2 -0
- package/lib/azure-roledefinition/lib/index.js +19 -0
- package/lib/azure-roledefinition/lib/role-definition-schemas.d.ts +25 -0
- package/lib/azure-roledefinition/lib/role-definition-schemas.js +195 -0
- package/lib/azure-roledefinition/lib/role-definition.d.ts +236 -0
- package/lib/azure-roledefinition/lib/role-definition.js +192 -0
- package/lib/azure-roledefinition/test/role-definition.integ.d.ts +12 -0
- package/lib/azure-roledefinition/test/role-definition.integ.js +142 -0
- package/lib/azure-roledefinition/test/role-definition.spec.d.ts +9 -0
- package/lib/azure-roledefinition/test/role-definition.spec.js +946 -0
- package/lib/azure-storageaccount/index.d.ts +0 -19
- package/lib/azure-storageaccount/index.js +1 -20
- package/lib/azure-storageaccount/lib/index.d.ts +1 -7
- package/lib/azure-storageaccount/lib/index.js +2 -8
- package/lib/azure-storageaccount/lib/storage-account.d.ts +4 -9
- package/lib/azure-storageaccount/lib/storage-account.js +15 -29
- package/lib/azure-subnet/index.d.ts +0 -3
- package/lib/azure-subnet/index.js +1 -4
- package/lib/azure-subnet/lib/index.d.ts +1 -4
- package/lib/azure-subnet/lib/index.js +2 -5
- package/lib/azure-subnet/lib/subnet.d.ts +3 -14
- package/lib/azure-subnet/lib/subnet.js +28 -47
- package/lib/azure-subnet/test/subnet.integ.js +19 -7
- package/lib/azure-subnet/test/subnet.spec.js +1 -2
- package/lib/azure-virtualmachine/index.d.ts +0 -6
- package/lib/azure-virtualmachine/index.js +1 -7
- package/lib/azure-virtualmachine/lib/index.d.ts +1 -10
- package/lib/azure-virtualmachine/lib/index.js +2 -21
- package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +4 -13
- package/lib/azure-virtualmachine/lib/virtual-machine.js +15 -36
- package/lib/azure-virtualnetwork/index.d.ts +0 -9
- package/lib/azure-virtualnetwork/index.js +1 -11
- package/lib/azure-virtualnetwork/lib/index.d.ts +2 -9
- package/lib/azure-virtualnetwork/lib/index.js +17 -20
- package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +4 -13
- package/lib/azure-virtualnetwork/lib/virtual-network.js +15 -36
- package/lib/azure-virtualnetworkmanager/index.d.ts +1 -0
- package/lib/azure-virtualnetworkmanager/index.js +18 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.d.ts +48 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.js +265 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +185 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +206 -0
- package/lib/azure-virtualnetworkmanager/lib/index.d.ts +14 -0
- package/lib/azure-virtualnetworkmanager/lib/index.js +31 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.js +189 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.js +201 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +135 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +163 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +139 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +158 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.js +182 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +144 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +164 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.d.ts +38 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.js +206 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +142 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +162 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.d.ts +39 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.js +359 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +221 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +204 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.js +236 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +337 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +283 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +25 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +402 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.d.ts +9 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +1652 -0
- package/lib/azure-vmss/index.d.ts +0 -5
- package/lib/azure-vmss/index.js +1 -6
- package/lib/azure-vmss/lib/index.d.ts +0 -7
- package/lib/azure-vmss/lib/index.js +1 -21
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +5 -13
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +29 -53
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.d.ts +10 -0
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +218 -0
- package/lib/core-azure/lib/azapi/azapi-resource.d.ts +178 -26
- package/lib/core-azure/lib/azapi/azapi-resource.js +328 -90
- package/lib/core-azure/lib/azapi/azapi-resource.spec.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 +5 -3
- 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/resource-schema-validator.d.ts +118 -0
- package/lib/core-azure/lib/azapi/resource-schema-validator.js +236 -0
- package/lib/core-azure/lib/azapi/resource-version-manager.d.ts +103 -0
- package/lib/core-azure/lib/azapi/resource-version-manager.js +168 -0
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +11 -6
- package/lib/core-azure/lib/index.d.ts +2 -2
- package/lib/core-azure/lib/index.js +5 -5
- 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 +19 -0
- package/lib/index.js +21 -2
- package/lib/testing/index.js +2 -2
- package/lib/testing/lib/cleanup.d.ts +1 -0
- package/lib/testing/lib/cleanup.js +19 -12
- package/lib/testing/lib/metadata.js +19 -16
- package/package.json +1 -1
- package/scripts/cleanup-test-resources.ts +22 -4
- package/scripts/generate-index.js +25 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lib"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtcG9saWN5ZGVmaW5pdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliXCI7XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./policy-definition-schemas"), exports);
|
|
18
|
+
__exportStar(require("./policy-definition"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcG9saWN5ZGVmaW5pdGlvbi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhEQUE0QztBQUM1QyxzREFBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9wb2xpY3ktZGVmaW5pdGlvbi1zY2hlbWFzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wb2xpY3ktZGVmaW5pdGlvblwiO1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API schemas for Azure Policy Definition across all supported versions
|
|
3
|
+
*
|
|
4
|
+
* This file defines the complete API schemas for Microsoft.Authorization/policyDefinitions
|
|
5
|
+
* across all supported API versions. The schemas are used by the VersionedAzapiResource
|
|
6
|
+
* framework for validation, transformation, and version management.
|
|
7
|
+
*/
|
|
8
|
+
import { ApiSchema, VersionConfig } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
9
|
+
/**
|
|
10
|
+
* API Schema for Policy Definition version 2021-06-01
|
|
11
|
+
* This is the latest stable API version for policy definitions
|
|
12
|
+
*/
|
|
13
|
+
export declare const POLICY_DEFINITION_SCHEMA_2021_06_01: ApiSchema;
|
|
14
|
+
/**
|
|
15
|
+
* Version configuration for Policy Definition 2021-06-01
|
|
16
|
+
*/
|
|
17
|
+
export declare const POLICY_DEFINITION_VERSION_2021_06_01: VersionConfig;
|
|
18
|
+
/**
|
|
19
|
+
* All supported Policy Definition versions for registration
|
|
20
|
+
*/
|
|
21
|
+
export declare const ALL_POLICY_DEFINITION_VERSIONS: VersionConfig[];
|
|
22
|
+
/**
|
|
23
|
+
* Resource type constant
|
|
24
|
+
*/
|
|
25
|
+
export declare const POLICY_DEFINITION_TYPE = "Microsoft.Authorization/policyDefinitions";
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* API schemas for Azure Policy Definition across all supported versions
|
|
4
|
+
*
|
|
5
|
+
* This file defines the complete API schemas for Microsoft.Authorization/policyDefinitions
|
|
6
|
+
* across all supported API versions. The schemas are used by the VersionedAzapiResource
|
|
7
|
+
* framework for validation, transformation, and version management.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.POLICY_DEFINITION_TYPE = exports.ALL_POLICY_DEFINITION_VERSIONS = exports.POLICY_DEFINITION_VERSION_2021_06_01 = exports.POLICY_DEFINITION_SCHEMA_2021_06_01 = void 0;
|
|
11
|
+
const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// COMMON PROPERTY DEFINITIONS
|
|
14
|
+
// =============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Common property definitions shared across all Policy Definition versions
|
|
17
|
+
*/
|
|
18
|
+
const COMMON_PROPERTIES = {
|
|
19
|
+
name: {
|
|
20
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
21
|
+
required: false,
|
|
22
|
+
description: "The name of the policy definition. Must be unique within the scope (subscription or management group)",
|
|
23
|
+
validation: [
|
|
24
|
+
{
|
|
25
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
26
|
+
value: "^[a-zA-Z0-9_-]+$",
|
|
27
|
+
message: "Policy definition name can only contain alphanumeric characters, underscores, and hyphens",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
|
|
31
|
+
value: { minLength: 1, maxLength: 64 },
|
|
32
|
+
message: "Policy definition name must be between 1 and 64 characters",
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
displayName: {
|
|
37
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
38
|
+
required: false,
|
|
39
|
+
description: "The display name of the policy definition",
|
|
40
|
+
validation: [
|
|
41
|
+
{
|
|
42
|
+
ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
|
|
43
|
+
value: { minLength: 1, maxLength: 128 },
|
|
44
|
+
message: "Display name must be between 1 and 128 characters",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
description: {
|
|
49
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
50
|
+
required: false,
|
|
51
|
+
description: "The policy definition description. Provides detailed information about what the policy enforces",
|
|
52
|
+
validation: [
|
|
53
|
+
{
|
|
54
|
+
ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
|
|
55
|
+
value: { minLength: 0, maxLength: 512 },
|
|
56
|
+
message: "Description must not exceed 512 characters",
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
policyType: {
|
|
61
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
62
|
+
required: false,
|
|
63
|
+
defaultValue: "Custom",
|
|
64
|
+
description: "The type of policy definition. Valid values: NotSpecified, BuiltIn, Static, Custom",
|
|
65
|
+
validation: [
|
|
66
|
+
{
|
|
67
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
68
|
+
value: "^(NotSpecified|BuiltIn|Static|Custom)$",
|
|
69
|
+
message: "Policy type must be one of: NotSpecified, BuiltIn, Static, Custom",
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
mode: {
|
|
74
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
75
|
+
required: false,
|
|
76
|
+
defaultValue: "All",
|
|
77
|
+
description: "The policy mode. Determines which resource types will be evaluated. Valid values: All, Indexed, or resource provider modes",
|
|
78
|
+
validation: [
|
|
79
|
+
{
|
|
80
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
81
|
+
value: version_interfaces_1.PropertyType.STRING,
|
|
82
|
+
message: "Mode must be a string value",
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
policyRule: {
|
|
87
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
88
|
+
required: true,
|
|
89
|
+
description: "The policy rule as a JSON object containing if/then logic that defines the policy enforcement",
|
|
90
|
+
validation: [
|
|
91
|
+
{
|
|
92
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
93
|
+
message: "Policy rule is required for policy definitions",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
97
|
+
value: version_interfaces_1.PropertyType.OBJECT,
|
|
98
|
+
message: "Policy rule must be a valid JSON object",
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
parameters: {
|
|
103
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
104
|
+
required: false,
|
|
105
|
+
description: "Parameters for the policy definition. Allows policy assignments to provide values that are used in the policy rule",
|
|
106
|
+
validation: [
|
|
107
|
+
{
|
|
108
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
109
|
+
value: version_interfaces_1.PropertyType.OBJECT,
|
|
110
|
+
message: "Parameters must be a valid JSON object",
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
metadata: {
|
|
115
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
116
|
+
required: false,
|
|
117
|
+
description: "Metadata for the policy definition. Used to store additional information like category, version, etc.",
|
|
118
|
+
validation: [
|
|
119
|
+
{
|
|
120
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
121
|
+
value: version_interfaces_1.PropertyType.OBJECT,
|
|
122
|
+
message: "Metadata must be a valid JSON object",
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
ignoreChanges: {
|
|
127
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
128
|
+
required: false,
|
|
129
|
+
description: "Array of property names to ignore during updates",
|
|
130
|
+
validation: [
|
|
131
|
+
{
|
|
132
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
133
|
+
value: version_interfaces_1.PropertyType.ARRAY,
|
|
134
|
+
message: "IgnoreChanges must be an array of strings",
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
// =============================================================================
|
|
140
|
+
// VERSION-SPECIFIC SCHEMAS
|
|
141
|
+
// =============================================================================
|
|
142
|
+
/**
|
|
143
|
+
* API Schema for Policy Definition version 2021-06-01
|
|
144
|
+
* This is the latest stable API version for policy definitions
|
|
145
|
+
*/
|
|
146
|
+
exports.POLICY_DEFINITION_SCHEMA_2021_06_01 = {
|
|
147
|
+
resourceType: "Microsoft.Authorization/policyDefinitions",
|
|
148
|
+
version: "2021-06-01",
|
|
149
|
+
properties: {
|
|
150
|
+
...COMMON_PROPERTIES,
|
|
151
|
+
},
|
|
152
|
+
required: ["policyRule"],
|
|
153
|
+
optional: [
|
|
154
|
+
"name",
|
|
155
|
+
"displayName",
|
|
156
|
+
"description",
|
|
157
|
+
"policyType",
|
|
158
|
+
"mode",
|
|
159
|
+
"parameters",
|
|
160
|
+
"metadata",
|
|
161
|
+
"ignoreChanges",
|
|
162
|
+
],
|
|
163
|
+
deprecated: [],
|
|
164
|
+
transformationRules: {},
|
|
165
|
+
validationRules: [
|
|
166
|
+
{
|
|
167
|
+
property: "policyRule",
|
|
168
|
+
rules: [
|
|
169
|
+
{
|
|
170
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
171
|
+
message: "Policy rule is required for policy definitions",
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
};
|
|
177
|
+
// =============================================================================
|
|
178
|
+
// VERSION CONFIGURATIONS
|
|
179
|
+
// =============================================================================
|
|
180
|
+
/**
|
|
181
|
+
* Version configuration for Policy Definition 2021-06-01
|
|
182
|
+
*/
|
|
183
|
+
exports.POLICY_DEFINITION_VERSION_2021_06_01 = {
|
|
184
|
+
version: "2021-06-01",
|
|
185
|
+
schema: exports.POLICY_DEFINITION_SCHEMA_2021_06_01,
|
|
186
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
187
|
+
releaseDate: "2021-06-01",
|
|
188
|
+
deprecationDate: undefined,
|
|
189
|
+
sunsetDate: undefined,
|
|
190
|
+
breakingChanges: [],
|
|
191
|
+
migrationGuide: "/docs/policy-definition/migration-2021-06-01",
|
|
192
|
+
changeLog: [
|
|
193
|
+
{
|
|
194
|
+
changeType: "added",
|
|
195
|
+
description: "Stable release of Policy Definition API with full support for custom policies",
|
|
196
|
+
breaking: false,
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* All supported Policy Definition versions for registration
|
|
202
|
+
*/
|
|
203
|
+
exports.ALL_POLICY_DEFINITION_VERSIONS = [
|
|
204
|
+
exports.POLICY_DEFINITION_VERSION_2021_06_01,
|
|
205
|
+
];
|
|
206
|
+
/**
|
|
207
|
+
* Resource type constant
|
|
208
|
+
*/
|
|
209
|
+
exports.POLICY_DEFINITION_TYPE = "Microsoft.Authorization/policyDefinitions";
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWRlZmluaXRpb24tc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1wb2xpY3lkZWZpbml0aW9uL2xpYi9wb2xpY3ktZGVmaW5pdGlvbi1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQTBDO0lBQy9ELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQ1QsdUdBQXVHO1FBQ3pHLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxhQUFhO2dCQUMxQyxLQUFLLEVBQUUsa0JBQWtCO2dCQUN6QixPQUFPLEVBQ0wsMkZBQTJGO2FBQzlGO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFdBQVc7Z0JBQ3hDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtnQkFDdEMsT0FBTyxFQUFFLDREQUE0RDthQUN0RTtTQUNGO0tBQ0Y7SUFDRCxXQUFXLEVBQUU7UUFDWCxRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLDJDQUEyQztRQUN4RCxVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsV0FBVztnQkFDeEMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUN2QyxPQUFPLEVBQUUsbURBQW1EO2FBQzdEO1NBQ0Y7S0FDRjtJQUNELFdBQVcsRUFBRTtRQUNYLFFBQVEsRUFBRSxpQ0FBWSxDQUFD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Q3hCLFFBQVEsRUFBRTtRQUNSLE1BQU07UUFDTixhQUFhO1FBQ2IsYUFBYTtRQUNiLFlBQVk7UUFDWixNQUFNO1FBQ04sWUFBWTtRQUNaLFVBQVU7UUFDVixlQUFlO0tBQ2hCO0lBQ0QsVUFBVSxFQUFFLEVBQUU7SUFDZCxtQkFBbUIsRUFBRSxFQUFFO0lBQ3ZCLGVBQWUsRUFBRTtRQUNmO1lBQ0UsUUFBUSxFQUFFLFlBQVk7WUFDdEIsS0FBSyxFQUFFO2dCQUNMO29CQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO29CQUNyQyxPQUFPLEVBQUUsZ0RBQWdEO2lCQUMxRDthQUNGO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFFRixnRkFBZ0Y7QUFDaEYseUJBQXlCO0FBQ3pCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNVLFFBQUEsb0NBQW9DLEdBQWtCO0lBQ2pFLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE1BQU0sRUFBRSwyQ0FBbUM7SUFDM0MsWUFBWSxFQUFFLHdDQUFtQixDQUFDLE1BQU07SUFDeEMsV0FBVyxFQUFFLFlBQVk7SUFDekIsZUFBZSxFQUFFLFNBQVM7SUFDMUIsVUFBVSxFQUFFLFNBQVM7SUFDckIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsY0FBYyxFQUFFLDhDQUE4QztJQUM5RCxTQUFTLEVBQUU7UUFDVDtZQUNFLFVBQVUsRUFBRSxPQUFPO1lBQ25CLFdBQVcsRUFDVCwrRUFBK0U7WUFDakYsUUFBUSxFQUFFLEtBQUs7U0FDaEI7S0FDRjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsOEJBQThCLEdBQW9CO0lBQzdELDRDQUFvQztDQUNyQyxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLHNCQUFzQixHQUNqQywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQVBJIHNjaGVtYXMgZm9yIEF6dXJlIFBvbGljeSBEZWZpbml0aW9uIGFjcm9zcyBhbGwgc3VwcG9ydGVkIHZlcnNpb25zXG4gKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIGNvbXBsZXRlIEFQSSBzY2hlbWFzIGZvciBNaWNyb3NvZnQuQXV0aG9yaXphdGlvbi9wb2xpY3lEZWZpbml0aW9uc1xuICogYWNyb3NzIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zLiBUaGUgc2NoZW1hcyBhcmUgdXNlZCBieSB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZVxuICogZnJhbWV3b3JrIGZvciB2YWxpZGF0aW9uLCB0cmFuc2Zvcm1hdGlvbiwgYW5kIHZlcnNpb24gbWFuYWdlbWVudC5cbiAqL1xuXG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTU1PTiBQUk9QRVJUWSBERUZJTklUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydHkgZGVmaW5pdGlvbnMgc2hhcmVkIGFjcm9zcyBhbGwgUG9saWN5IERlZmluaXRpb24gdmVyc2lvbnNcbiAqL1xuY29uc3QgQ09NTU9OX1BST1BFUlRJRVM6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEZWZpbml0aW9uIH0gPSB7XG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlRoZSBuYW1lIG9mIHRoZSBwb2xpY3kgZGVmaW5pdGlvbi4gTXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBzY29wZSAoc3Vic2NyaXB0aW9uIG9yIG1hbmFnZW1lbnQgZ3JvdXApXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16QS1aMC05Xy1dKyRcIixcbiAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICBcIlBvbGljeSBkZWZpbml0aW9uIG5hbWUgY2FuIG9ubHkgY29udGFpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgdW5kZXJzY29yZXMsIGFuZCBoeXBoZW5zXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlZBTFVFX1JBTkdFLFxuICAgICAgICB2YWx1ZTogeyBtaW5MZW5ndGg6IDEsIG1heExlbmd0aDogNjQgfSxcbiAgICAgICAgbWVzc2FnZTogXCJQb2xpY3kgZGVmaW5pdGlvbiBuYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA2NCBjaGFyYWN0ZXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGRpc3BsYXlOYW1lOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHBvbGljeSBkZWZpbml0aW9uXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlZBTFVFX1JBTkdFLFxuICAgICAgICB2YWx1ZTogeyBtaW5MZW5ndGg6IDEsIG1heExlbmd0aDogMTI4IH0sXG4gICAgICAgIG1lc3NhZ2U6IFwiRGlzcGxheSBuYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMjggY2hhcmFjdGVyc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBkZXNjcmlwdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIHBvbGljeSBkZWZpbml0aW9uIGRlc2NyaXB0aW9uLiBQcm92aWRlcyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHRoZSBwb2xpY3kgZW5mb3JjZXNcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVkFMVUVfUkFOR0UsXG4gICAgICAgIHZhbHVlOiB7IG1pbkxlbmd0aDogMCwgbWF4TGVuZ3RoOiA1MTIgfSxcbiAgICAgICAgbWVzc2FnZTogXCJEZXNjcmlwdGlvbiBtdXN0IG5vdCBleGNlZWQgNTEyIGNoYXJhY3RlcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcG9saWN5VHlwZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IFwiQ3VzdG9tXCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlRoZSB0eXBlIG9mIHBvbGljeSBkZWZpbml0aW9uLiBWYWxpZCB2YWx1ZXM6IE5vdFNwZWNpZmllZCwgQnVpbHRJbiwgU3RhdGljLCBDdXN0b21cIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXihOb3RTcGVjaWZpZWR8QnVpbHRJbnxTdGF0aWN8Q3VzdG9tKSRcIixcbiAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICBcIlBvbGljeSB0eXBlIG11c3QgYmUgb25lIG9mOiBOb3RTcGVjaWZpZWQsIEJ1aWx0SW4sIFN0YXRpYywgQ3VzdG9tXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG1vZGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBcIkFsbFwiLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgcG9saWN5IG1vZGUuIERldGVybWluZXMgd2hpY2ggcmVzb3VyY2UgdHlwZXMgd2lsbCBiZSBldmFsdWF0ZWQuIFZhbGlkIHZhbHVlczogQWxsLCBJbmRleGVkLCBvciByZXNvdXJjZSBwcm92aWRlciBtb2Rlc1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICAgICAgbWVzc2FnZTogXCJNb2RlIG11c3QgYmUgYSBzdHJpbmcgdmFsdWVcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcG9saWN5UnVsZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgcG9saWN5IHJ1bGUgYXMgYSBKU09OIG9iamVjdCBjb250YWluaW5nIGlmL3RoZW4gbG9naWMgdGhhdCBkZWZpbmVzIHRoZSBwb2xpY3kgZW5mb3JjZW1lbnRcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiUG9saWN5IHJ1bGUgaXMgcmVxdWlyZWQgZm9yIHBvbGljeSBkZWZpbml0aW9uc1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICAgICAgbWVzc2FnZTogXCJQb2xpY3kgcnVsZSBtdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3RcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcGFyYW1ldGVyczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiUGFyYW1ldGVycyBmb3IgdGhlIHBvbGljeSBkZWZpbml0aW9uLiBBbGxvd3MgcG9saWN5IGFzc2lnbm1lbnRzIHRvIHByb3ZpZGUgdmFsdWVzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIHBvbGljeSBydWxlXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgICAgICBtZXNzYWdlOiBcIlBhcmFtZXRlcnMgbXVzdCBiZSBhIHZhbGlkIEpTT04gb2JqZWN0XCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG1ldGFkYXRhOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJNZXRhZGF0YSBmb3IgdGhlIHBvbGljeSBkZWZpbml0aW9uLiBVc2VkIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gbGlrZSBjYXRlZ29yeSwgdmVyc2lvbiwgZXRjLlwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICAgICAgbWVzc2FnZTogXCJNZXRhZGF0YSBtdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3RcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgaWdub3JlQ2hhbmdlczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkFycmF5IG9mIHByb3BlcnR5IG5hbWVzIHRvIGlnbm9yZSBkdXJpbmcgdXBkYXRlc1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgICAgICBtZXNzYWdlOiBcIklnbm9yZUNoYW5nZXMgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTi1TUEVDSUZJQyBTQ0hFTUFTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIFBvbGljeSBEZWZpbml0aW9uIHZlcnNpb24gMjAyMS0wNi0wMVxuICogVGhpcyBpcyB0aGUgbGF0ZXN0IHN0YWJsZSBBUEkgdmVyc2lvbiBmb3IgcG9saWN5IGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBQT0xJQ1lfREVGSU5JVElPTl9TQ0hFTUFfMjAyMV8wNl8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcG9saWN5RGVmaW5pdGlvbnNcIixcbiAgdmVyc2lvbjogXCIyMDIxLTA2LTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcInBvbGljeVJ1bGVcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJuYW1lXCIsXG4gICAgXCJkaXNwbGF5TmFtZVwiLFxuICAgIFwiZGVzY3JpcHRpb25cIixcbiAgICBcInBvbGljeVR5cGVcIixcbiAgICBcIm1vZGVcIixcbiAgICBcInBhcmFtZXRlcnNcIixcbiAgICBcIm1ldGFkYXRhXCIsXG4gICAgXCJpZ25vcmVDaGFuZ2VzXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwicG9saWN5UnVsZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJQb2xpY3kgcnVsZSBpcyByZXF1aXJlZCBmb3IgcG9saWN5IGRlZmluaXRpb25zXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTiBDT05GSUdVUkFUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFBvbGljeSBEZWZpbml0aW9uIDIwMjEtMDYtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IFBPTElDWV9ERUZJTklUSU9OX1ZFUlNJT05fMjAyMV8wNl8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDIxLTA2LTAxXCIsXG4gIHNjaGVtYTogUE9MSUNZX0RFRklOSVRJT05fU0NIRU1BXzIwMjFfMDZfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjEtMDYtMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvcG9saWN5LWRlZmluaXRpb24vbWlncmF0aW9uLTIwMjEtMDYtMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJhZGRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiU3RhYmxlIHJlbGVhc2Ugb2YgUG9saWN5IERlZmluaXRpb24gQVBJIHdpdGggZnVsbCBzdXBwb3J0IGZvciBjdXN0b20gcG9saWNpZXNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBbGwgc3VwcG9ydGVkIFBvbGljeSBEZWZpbml0aW9uIHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9QT0xJQ1lfREVGSU5JVElPTl9WRVJTSU9OUzogVmVyc2lvbkNvbmZpZ1tdID0gW1xuICBQT0xJQ1lfREVGSU5JVElPTl9WRVJTSU9OXzIwMjFfMDZfMDEsXG5dO1xuXG4vKipcbiAqIFJlc291cmNlIHR5cGUgY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFBPTElDWV9ERUZJTklUSU9OX1RZUEUgPVxuICBcIk1pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeURlZmluaXRpb25zXCI7XG4iXX0=
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Azure Policy Definition implementation using VersionedAzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This class provides a version-aware implementation for managing Azure Policy Definitions
|
|
5
|
+
* using the AZAPI provider. Policy definitions are deployed at subscription or management
|
|
6
|
+
* group scope and define the rules and parameters for policy enforcement.
|
|
7
|
+
*
|
|
8
|
+
* Supported API Versions:
|
|
9
|
+
* - 2021-06-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
|
+
* - Support for custom policy rules and parameters
|
|
16
|
+
* - JSII compliance for multi-language support
|
|
17
|
+
*/
|
|
18
|
+
import * as cdktf from "cdktf";
|
|
19
|
+
import { Construct } from "constructs";
|
|
20
|
+
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
21
|
+
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
22
|
+
/**
|
|
23
|
+
* Properties for the unified Azure Policy Definition
|
|
24
|
+
*
|
|
25
|
+
* Extends AzapiResourceProps with Policy Definition specific properties
|
|
26
|
+
*/
|
|
27
|
+
export interface PolicyDefinitionProps extends AzapiResourceProps {
|
|
28
|
+
/**
|
|
29
|
+
* The display name of the policy definition
|
|
30
|
+
* Provides a human-readable name for the policy
|
|
31
|
+
*
|
|
32
|
+
* @example "Require tag and its value on resources"
|
|
33
|
+
*/
|
|
34
|
+
readonly displayName?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The policy definition description
|
|
37
|
+
* Provides detailed information about what the policy enforces
|
|
38
|
+
*
|
|
39
|
+
* @example "Enforces a required tag and its value on resources"
|
|
40
|
+
*/
|
|
41
|
+
readonly description?: string;
|
|
42
|
+
/**
|
|
43
|
+
* The type of policy definition
|
|
44
|
+
* @default "Custom"
|
|
45
|
+
* @example "Custom", "BuiltIn", "Static", "NotSpecified"
|
|
46
|
+
*/
|
|
47
|
+
readonly policyType?: string;
|
|
48
|
+
/**
|
|
49
|
+
* The policy mode
|
|
50
|
+
* Determines which resource types will be evaluated
|
|
51
|
+
* @default "All"
|
|
52
|
+
* @example "All", "Indexed", "Microsoft.KeyVault.Data"
|
|
53
|
+
*/
|
|
54
|
+
readonly mode?: string;
|
|
55
|
+
/**
|
|
56
|
+
* The policy rule as a JSON object
|
|
57
|
+
* Defines the if/then logic that determines policy enforcement
|
|
58
|
+
* This is required for all policy definitions
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* {
|
|
62
|
+
* if: {
|
|
63
|
+
* field: "tags['Environment']",
|
|
64
|
+
* exists: "false"
|
|
65
|
+
* },
|
|
66
|
+
* then: {
|
|
67
|
+
* effect: "deny"
|
|
68
|
+
* }
|
|
69
|
+
* }
|
|
70
|
+
*/
|
|
71
|
+
readonly policyRule: any;
|
|
72
|
+
/**
|
|
73
|
+
* Parameters for the policy definition
|
|
74
|
+
* Allows policy assignments to provide values that are used in the policy rule
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* {
|
|
78
|
+
* tagName: {
|
|
79
|
+
* type: "String",
|
|
80
|
+
* metadata: {
|
|
81
|
+
* displayName: "Tag Name",
|
|
82
|
+
* description: "Name of the tag to enforce"
|
|
83
|
+
* }
|
|
84
|
+
* }
|
|
85
|
+
* }
|
|
86
|
+
*/
|
|
87
|
+
readonly parameters?: any;
|
|
88
|
+
/**
|
|
89
|
+
* Metadata for the policy definition
|
|
90
|
+
* Used to store additional information like category, version, etc.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* {
|
|
94
|
+
* category: "Tags",
|
|
95
|
+
* version: "1.0.0"
|
|
96
|
+
* }
|
|
97
|
+
*/
|
|
98
|
+
readonly metadata?: any;
|
|
99
|
+
/**
|
|
100
|
+
* The lifecycle rules to ignore changes
|
|
101
|
+
* @example ["metadata"]
|
|
102
|
+
*/
|
|
103
|
+
readonly ignoreChanges?: string[];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Properties interface for Azure Policy Definition
|
|
107
|
+
* This is required for JSII compliance to support multi-language code generation
|
|
108
|
+
*/
|
|
109
|
+
export interface PolicyDefinitionProperties {
|
|
110
|
+
/**
|
|
111
|
+
* The display name of the policy definition
|
|
112
|
+
*/
|
|
113
|
+
readonly displayName?: string;
|
|
114
|
+
/**
|
|
115
|
+
* The policy definition description
|
|
116
|
+
*/
|
|
117
|
+
readonly description?: string;
|
|
118
|
+
/**
|
|
119
|
+
* The type of policy definition
|
|
120
|
+
*/
|
|
121
|
+
readonly policyType?: string;
|
|
122
|
+
/**
|
|
123
|
+
* The policy mode
|
|
124
|
+
*/
|
|
125
|
+
readonly mode?: string;
|
|
126
|
+
/**
|
|
127
|
+
* The policy rule object
|
|
128
|
+
*/
|
|
129
|
+
readonly policyRule: any;
|
|
130
|
+
/**
|
|
131
|
+
* Parameters for the policy definition
|
|
132
|
+
*/
|
|
133
|
+
readonly parameters?: any;
|
|
134
|
+
/**
|
|
135
|
+
* Metadata for the policy definition
|
|
136
|
+
*/
|
|
137
|
+
readonly metadata?: any;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The resource body interface for Azure Policy Definition API calls
|
|
141
|
+
* This matches the Azure REST API schema for policy definitions
|
|
142
|
+
*/
|
|
143
|
+
export interface PolicyDefinitionBody {
|
|
144
|
+
/**
|
|
145
|
+
* The properties of the policy definition
|
|
146
|
+
*/
|
|
147
|
+
readonly properties: PolicyDefinitionProperties;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Unified Azure Policy Definition implementation
|
|
151
|
+
*
|
|
152
|
+
* This class provides a single, version-aware implementation for managing Azure
|
|
153
|
+
* Policy Definitions. It automatically handles version resolution, schema validation,
|
|
154
|
+
* and property transformation.
|
|
155
|
+
*
|
|
156
|
+
* Note: Policy definitions are deployed at subscription or management group scope.
|
|
157
|
+
* Unlike most Azure resources, they do not have a location property as they are
|
|
158
|
+
* not region-specific.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* // Basic custom policy definition:
|
|
162
|
+
* const policyDefinition = new PolicyDefinition(this, "policy", {
|
|
163
|
+
* name: "require-tag-policy",
|
|
164
|
+
* displayName: "Require tag on resources",
|
|
165
|
+
* description: "Enforces a required tag on resources",
|
|
166
|
+
* policyRule: {
|
|
167
|
+
* if: {
|
|
168
|
+
* field: "tags['Environment']",
|
|
169
|
+
* exists: "false"
|
|
170
|
+
* },
|
|
171
|
+
* then: {
|
|
172
|
+
* effect: "deny"
|
|
173
|
+
* }
|
|
174
|
+
* }
|
|
175
|
+
* });
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* // Policy definition with parameters:
|
|
179
|
+
* const policyDefinition = new PolicyDefinition(this, "policy", {
|
|
180
|
+
* name: "require-tag-policy",
|
|
181
|
+
* displayName: "Require tag on resources",
|
|
182
|
+
* policyRule: {
|
|
183
|
+
* if: {
|
|
184
|
+
* field: "[concat('tags[', parameters('tagName'), ']')]",
|
|
185
|
+
* exists: "false"
|
|
186
|
+
* },
|
|
187
|
+
* then: {
|
|
188
|
+
* effect: "deny"
|
|
189
|
+
* }
|
|
190
|
+
* },
|
|
191
|
+
* parameters: {
|
|
192
|
+
* tagName: {
|
|
193
|
+
* type: "String",
|
|
194
|
+
* metadata: {
|
|
195
|
+
* displayName: "Tag Name"
|
|
196
|
+
* }
|
|
197
|
+
* }
|
|
198
|
+
* }
|
|
199
|
+
* });
|
|
200
|
+
*
|
|
201
|
+
* @stability stable
|
|
202
|
+
*/
|
|
203
|
+
export declare class PolicyDefinition extends AzapiResource {
|
|
204
|
+
/**
|
|
205
|
+
* The input properties for this Policy Definition instance
|
|
206
|
+
*/
|
|
207
|
+
readonly props: PolicyDefinitionProps;
|
|
208
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
209
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
210
|
+
/**
|
|
211
|
+
* Creates a new Azure Policy Definition using the VersionedAzapiResource framework
|
|
212
|
+
*
|
|
213
|
+
* The constructor automatically handles version resolution, schema registration,
|
|
214
|
+
* validation, and resource creation.
|
|
215
|
+
*
|
|
216
|
+
* @param scope - The scope in which to define this construct
|
|
217
|
+
* @param id - The unique identifier for this instance
|
|
218
|
+
* @param props - Configuration properties for the Policy Definition
|
|
219
|
+
*/
|
|
220
|
+
constructor(scope: Construct, id: string, props: PolicyDefinitionProps);
|
|
221
|
+
/**
|
|
222
|
+
* Gets the default API version to use when no explicit version is specified
|
|
223
|
+
* Returns the most recent stable version as the default
|
|
224
|
+
*/
|
|
225
|
+
protected defaultVersion(): string;
|
|
226
|
+
/**
|
|
227
|
+
* Gets the Azure resource type for Policy Definitions
|
|
228
|
+
*/
|
|
229
|
+
protected resourceType(): string;
|
|
230
|
+
/**
|
|
231
|
+
* Gets the API schema for the resolved version
|
|
232
|
+
* Uses the framework's schema resolution to get the appropriate schema
|
|
233
|
+
*/
|
|
234
|
+
protected apiSchema(): ApiSchema;
|
|
235
|
+
/**
|
|
236
|
+
* Creates the resource body for the Azure API call
|
|
237
|
+
* Transforms the input properties into the JSON format expected by Azure REST API
|
|
238
|
+
*
|
|
239
|
+
* Note: Policy definitions do not have a location property as they are
|
|
240
|
+
* subscription or management group scoped resources.
|
|
241
|
+
*/
|
|
242
|
+
protected createResourceBody(props: any): any;
|
|
243
|
+
/**
|
|
244
|
+
* Get the full resource identifier for use in other Azure resources
|
|
245
|
+
* Alias for the id property
|
|
246
|
+
*/
|
|
247
|
+
get resourceId(): string;
|
|
248
|
+
/**
|
|
249
|
+
* Get the policy type
|
|
250
|
+
*/
|
|
251
|
+
get policyType(): string;
|
|
252
|
+
/**
|
|
253
|
+
* Get the policy mode
|
|
254
|
+
*/
|
|
255
|
+
get policyMode(): string;
|
|
256
|
+
/**
|
|
257
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
258
|
+
*/
|
|
259
|
+
private _applyIgnoreChanges;
|
|
260
|
+
}
|