@microsoft/terraform-cdk-constructs 1.2.0 → 1.3.1
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 +54630 -26185
- 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 +349 -0
- package/lib/azure-policyassignment/lib/policy-assignment.js +237 -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 +281 -0
- package/lib/azure-policydefinition/lib/policy-definition.js +236 -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 +806 -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 +206 -26
- package/lib/core-azure/lib/azapi/azapi-resource.js +379 -91
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtcm9sZWRlZmluaXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xpYlwiO1xuIl19
|
|
@@ -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("./role-definition-schemas"), exports);
|
|
18
|
+
__exportStar(require("./role-definition"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcm9sZWRlZmluaXRpb24vbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0REFBMEM7QUFDMUMsb0RBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcm9sZS1kZWZpbml0aW9uLXNjaGVtYXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvbGUtZGVmaW5pdGlvblwiO1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API schemas for Azure Role Definition across all supported versions
|
|
3
|
+
*
|
|
4
|
+
* This file defines the complete API schemas for Microsoft.Authorization/roleDefinitions
|
|
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 Role Definition version 2022-04-01
|
|
11
|
+
* This is the latest stable API version for role definitions
|
|
12
|
+
*/
|
|
13
|
+
export declare const ROLE_DEFINITION_SCHEMA_2022_04_01: ApiSchema;
|
|
14
|
+
/**
|
|
15
|
+
* Version configuration for Role Definition 2022-04-01
|
|
16
|
+
*/
|
|
17
|
+
export declare const ROLE_DEFINITION_VERSION_2022_04_01: VersionConfig;
|
|
18
|
+
/**
|
|
19
|
+
* All supported Role Definition versions for registration
|
|
20
|
+
*/
|
|
21
|
+
export declare const ALL_ROLE_DEFINITION_VERSIONS: VersionConfig[];
|
|
22
|
+
/**
|
|
23
|
+
* Resource type constant
|
|
24
|
+
*/
|
|
25
|
+
export declare const ROLE_DEFINITION_TYPE = "Microsoft.Authorization/roleDefinitions";
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* API schemas for Azure Role Definition across all supported versions
|
|
4
|
+
*
|
|
5
|
+
* This file defines the complete API schemas for Microsoft.Authorization/roleDefinitions
|
|
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.ROLE_DEFINITION_TYPE = exports.ALL_ROLE_DEFINITION_VERSIONS = exports.ROLE_DEFINITION_VERSION_2022_04_01 = exports.ROLE_DEFINITION_SCHEMA_2022_04_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 Role 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 role definition resource. Automatically generated as a GUID by Terraform's guid() function",
|
|
23
|
+
validation: [
|
|
24
|
+
// Note: No pattern validation here because the name will be a Terraform function
|
|
25
|
+
// guid() that gets evaluated at apply time, not synthesis time.
|
|
26
|
+
// Azure will validate the final GUID format when the resource is created.
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
roleName: {
|
|
30
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
31
|
+
required: true,
|
|
32
|
+
description: "The name of the role definition. This is the display name shown in the Azure portal",
|
|
33
|
+
validation: [
|
|
34
|
+
{
|
|
35
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
36
|
+
message: "Role name is required for role definitions",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
|
|
40
|
+
value: { minLength: 1, maxLength: 128 },
|
|
41
|
+
message: "Role name must be between 1 and 128 characters",
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
description: {
|
|
46
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
47
|
+
required: false,
|
|
48
|
+
description: "The role definition description. Provides detailed information about what the role allows",
|
|
49
|
+
validation: [
|
|
50
|
+
{
|
|
51
|
+
ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
|
|
52
|
+
value: { minLength: 0, maxLength: 1024 },
|
|
53
|
+
message: "Description must not exceed 1024 characters",
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
type: {
|
|
58
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
59
|
+
required: false,
|
|
60
|
+
defaultValue: "CustomRole",
|
|
61
|
+
description: "The type of role definition. Valid values: BuiltInRole, CustomRole",
|
|
62
|
+
validation: [
|
|
63
|
+
{
|
|
64
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
65
|
+
value: "^(BuiltInRole|CustomRole)$",
|
|
66
|
+
message: "Role type must be either BuiltInRole or CustomRole",
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
permissions: {
|
|
71
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
72
|
+
required: true,
|
|
73
|
+
description: "An array of permissions objects that define what actions the role can perform",
|
|
74
|
+
validation: [
|
|
75
|
+
{
|
|
76
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
77
|
+
message: "Permissions are required for role definitions",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
81
|
+
value: version_interfaces_1.PropertyType.ARRAY,
|
|
82
|
+
message: "Permissions must be an array of permission objects",
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
assignableScopes: {
|
|
87
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
88
|
+
required: true,
|
|
89
|
+
description: "An array of scopes where this role can be assigned (subscription, resource group, or management group)",
|
|
90
|
+
validation: [
|
|
91
|
+
{
|
|
92
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
93
|
+
message: "Assignable scopes are required for role definitions",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
97
|
+
value: version_interfaces_1.PropertyType.ARRAY,
|
|
98
|
+
message: "Assignable scopes must be an array of scope strings",
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
ignoreChanges: {
|
|
103
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
104
|
+
required: false,
|
|
105
|
+
description: "Array of property names to ignore during updates",
|
|
106
|
+
validation: [
|
|
107
|
+
{
|
|
108
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
109
|
+
value: version_interfaces_1.PropertyType.ARRAY,
|
|
110
|
+
message: "IgnoreChanges must be an array of strings",
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
// =============================================================================
|
|
116
|
+
// VERSION-SPECIFIC SCHEMAS
|
|
117
|
+
// =============================================================================
|
|
118
|
+
/**
|
|
119
|
+
* API Schema for Role Definition version 2022-04-01
|
|
120
|
+
* This is the latest stable API version for role definitions
|
|
121
|
+
*/
|
|
122
|
+
exports.ROLE_DEFINITION_SCHEMA_2022_04_01 = {
|
|
123
|
+
resourceType: "Microsoft.Authorization/roleDefinitions",
|
|
124
|
+
version: "2022-04-01",
|
|
125
|
+
properties: {
|
|
126
|
+
...COMMON_PROPERTIES,
|
|
127
|
+
},
|
|
128
|
+
required: ["roleName", "permissions", "assignableScopes"],
|
|
129
|
+
optional: ["name", "description", "type", "ignoreChanges"],
|
|
130
|
+
deprecated: [],
|
|
131
|
+
transformationRules: {},
|
|
132
|
+
validationRules: [
|
|
133
|
+
{
|
|
134
|
+
property: "roleName",
|
|
135
|
+
rules: [
|
|
136
|
+
{
|
|
137
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
138
|
+
message: "Role name is required for role definitions",
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
property: "permissions",
|
|
144
|
+
rules: [
|
|
145
|
+
{
|
|
146
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
147
|
+
message: "Permissions are required for role definitions",
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
property: "assignableScopes",
|
|
153
|
+
rules: [
|
|
154
|
+
{
|
|
155
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
156
|
+
message: "Assignable scopes are required for role definitions",
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
};
|
|
162
|
+
// =============================================================================
|
|
163
|
+
// VERSION CONFIGURATIONS
|
|
164
|
+
// =============================================================================
|
|
165
|
+
/**
|
|
166
|
+
* Version configuration for Role Definition 2022-04-01
|
|
167
|
+
*/
|
|
168
|
+
exports.ROLE_DEFINITION_VERSION_2022_04_01 = {
|
|
169
|
+
version: "2022-04-01",
|
|
170
|
+
schema: exports.ROLE_DEFINITION_SCHEMA_2022_04_01,
|
|
171
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
172
|
+
releaseDate: "2022-04-01",
|
|
173
|
+
deprecationDate: undefined,
|
|
174
|
+
sunsetDate: undefined,
|
|
175
|
+
breakingChanges: [],
|
|
176
|
+
migrationGuide: "/docs/role-definition/migration-2022-04-01",
|
|
177
|
+
changeLog: [
|
|
178
|
+
{
|
|
179
|
+
changeType: "added",
|
|
180
|
+
description: "Stable release of Role Definition API with full support for custom RBAC roles",
|
|
181
|
+
breaking: false,
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* All supported Role Definition versions for registration
|
|
187
|
+
*/
|
|
188
|
+
exports.ALL_ROLE_DEFINITION_VERSIONS = [
|
|
189
|
+
exports.ROLE_DEFINITION_VERSION_2022_04_01,
|
|
190
|
+
];
|
|
191
|
+
/**
|
|
192
|
+
* Resource type constant
|
|
193
|
+
*/
|
|
194
|
+
exports.ROLE_DEFINITION_TYPE = "Microsoft.Authorization/roleDefinitions";
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1kZWZpbml0aW9uLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcm9sZWRlZmluaXRpb24vbGliL3JvbGUtZGVmaW5pdGlvbi1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQTBDO0lBQy9ELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQ1QsNEdBQTRHO1FBQzlHLFVBQVUsRUFBRTtRQUNWLGlGQUFpRjtRQUNqRixnRUFBZ0U7UUFDaEUsMEVBQTBFO1NBQzNFO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUNULHFGQUFxRjtRQUN2RixVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtnQkFDckMsT0FBTyxFQUFFLDRDQUE0QzthQUN0RDtZQUNEO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxXQUFXO2dCQUN4QyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUU7Z0JBQ3ZDLE9BQU8sRUFBRSxnREFBZ0Q7YUFDMUQ7U0FDRjtLQUNGO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFDVCwyRkFBMkY7UUFDN0YsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFdBQVc7Z0JBQ3hDLEtBQUssRUFBRSxF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RjtLQUNGO0NBQ0YsQ0FBQztBQUVGLGdGQUFnRjtBQUNoRix5QkFBeUI7QUFDekIsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ1UsUUFBQSxrQ0FBa0MsR0FBa0I7SUFDL0QsT0FBTyxFQUFFLFlBQVk7SUFDckIsTUFBTSxFQUFFLHlDQUFpQztJQUN6QyxZQUFZLEVBQUUsd0NBQW1CLENBQUMsTUFBTTtJQUN4QyxXQUFXLEVBQUUsWUFBWTtJQUN6QixlQUFlLEVBQUUsU0FBUztJQUMxQixVQUFVLEVBQUUsU0FBUztJQUNyQixlQUFlLEVBQUUsRUFBRTtJQUNuQixjQUFjLEVBQUUsNENBQTRDO0lBQzVELFNBQVMsRUFBRTtRQUNUO1lBQ0UsVUFBVSxFQUFFLE9BQU87WUFDbkIsV0FBVyxFQUNULCtFQUErRTtZQUNqRixRQUFRLEVBQUUsS0FBSztTQUNoQjtLQUNGO0NBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSw0QkFBNEIsR0FBb0I7SUFDM0QsMENBQWtDO0NBQ25DLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFQSSBzY2hlbWFzIGZvciBBenVyZSBSb2xlIERlZmluaXRpb24gYWNyb3NzIGFsbCBzdXBwb3J0ZWQgdmVyc2lvbnNcbiAqXG4gKiBUaGlzIGZpbGUgZGVmaW5lcyB0aGUgY29tcGxldGUgQVBJIHNjaGVtYXMgZm9yIE1pY3Jvc29mdC5BdXRob3JpemF0aW9uL3JvbGVEZWZpbml0aW9uc1xuICogYWNyb3NzIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zLiBUaGUgc2NoZW1hcyBhcmUgdXNlZCBieSB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZVxuICogZnJhbWV3b3JrIGZvciB2YWxpZGF0aW9uLCB0cmFuc2Zvcm1hdGlvbiwgYW5kIHZlcnNpb24gbWFuYWdlbWVudC5cbiAqL1xuXG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTU1PTiBQUk9QRVJUWSBERUZJTklUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydHkgZGVmaW5pdGlvbnMgc2hhcmVkIGFjcm9zcyBhbGwgUm9sZSBEZWZpbml0aW9uIHZlcnNpb25zXG4gKi9cbmNvbnN0IENPTU1PTl9QUk9QRVJUSUVTOiB7IFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbiB9ID0ge1xuICBuYW1lOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgbmFtZSBvZiB0aGUgcm9sZSBkZWZpbml0aW9uIHJlc291cmNlLiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBhcyBhIEdVSUQgYnkgVGVycmFmb3JtJ3MgZ3VpZCgpIGZ1bmN0aW9uXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAgLy8gTm90ZTogTm8gcGF0dGVybiB2YWxpZGF0aW9uIGhlcmUgYmVjYXVzZSB0aGUgbmFtZSB3aWxsIGJlIGEgVGVycmFmb3JtIGZ1bmN0aW9uXG4gICAgICAvLyBndWlkKCkgdGhhdCBnZXRzIGV2YWx1YXRlZCBhdCBhcHBseSB0aW1lLCBub3Qgc3ludGhlc2lzIHRpbWUuXG4gICAgICAvLyBBenVyZSB3aWxsIHZhbGlkYXRlIHRoZSBmaW5hbCBHVUlEIGZvcm1hdCB3aGVuIHRoZSByZXNvdXJjZSBpcyBjcmVhdGVkLlxuICAgIF0sXG4gIH0sXG4gIHJvbGVOYW1lOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlRoZSBuYW1lIG9mIHRoZSByb2xlIGRlZmluaXRpb24uIFRoaXMgaXMgdGhlIGRpc3BsYXkgbmFtZSBzaG93biBpbiB0aGUgQXp1cmUgcG9ydGFsXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIlJvbGUgbmFtZSBpcyByZXF1aXJlZCBmb3Igcm9sZSBkZWZpbml0aW9uc1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5WQUxVRV9SQU5HRSxcbiAgICAgICAgdmFsdWU6IHsgbWluTGVuZ3RoOiAxLCBtYXhMZW5ndGg6IDEyOCB9LFxuICAgICAgICBtZXNzYWdlOiBcIlJvbGUgbmFtZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMTI4IGNoYXJhY3RlcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZGVzY3JpcHRpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlRoZSByb2xlIGRlZmluaXRpb24gZGVzY3JpcHRpb24uIFByb3ZpZGVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgdGhlIHJvbGUgYWxsb3dzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlZBTFVFX1JBTkdFLFxuICAgICAgICB2YWx1ZTogeyBtaW5MZW5ndGg6IDAsIG1heExlbmd0aDogMTAyNCB9LFxuICAgICAgICBtZXNzYWdlOiBcIkRlc2NyaXB0aW9uIG11c3Qgbm90IGV4Y2VlZCAxMDI0IGNoYXJhY3RlcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdHlwZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IFwiQ3VzdG9tUm9sZVwiLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgdHlwZSBvZiByb2xlIGRlZmluaXRpb24uIFZhbGlkIHZhbHVlczogQnVpbHRJblJvbGUsIEN1c3RvbVJvbGVcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXihCdWlsdEluUm9sZXxDdXN0b21Sb2xlKSRcIixcbiAgICAgICAgbWVzc2FnZTogXCJSb2xlIHR5cGUgbXVzdCBiZSBlaXRoZXIgQnVpbHRJblJvbGUgb3IgQ3VzdG9tUm9sZVwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBwZXJtaXNzaW9uczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIkFuIGFycmF5IG9mIHBlcm1pc3Npb25zIG9iamVjdHMgdGhhdCBkZWZpbmUgd2hhdCBhY3Rpb25zIHRoZSByb2xlIGNhbiBwZXJmb3JtXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIlBlcm1pc3Npb25zIGFyZSByZXF1aXJlZCBmb3Igcm9sZSBkZWZpbml0aW9uc1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgICAgICBtZXNzYWdlOiBcIlBlcm1pc3Npb25zIG11c3QgYmUgYW4gYXJyYXkgb2YgcGVybWlzc2lvbiBvYmplY3RzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGFzc2lnbmFibGVTY29wZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJBbiBhcnJheSBvZiBzY29wZXMgd2hlcmUgdGhpcyByb2xlIGNhbiBiZSBhc3NpZ25lZCAoc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCwgb3IgbWFuYWdlbWVudCBncm91cClcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiQXNzaWduYWJsZSBzY29wZXMgYXJlIHJlcXVpcmVkIGZvciByb2xlIGRlZmluaXRpb25zXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgICAgIG1lc3NhZ2U6IFwiQXNzaWduYWJsZSBzY29wZXMgbXVzdCBiZSBhbiBhcnJheSBvZiBzY29wZSBzdHJpbmdzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGlnbm9yZUNoYW5nZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJBcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyB0byBpZ25vcmUgZHVyaW5nIHVwZGF0ZXNcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVFlQRV9DSEVDSyxcbiAgICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICAgICAgbWVzc2FnZTogXCJJZ25vcmVDaGFuZ2VzIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5nc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZFUlNJT04tU1BFQ0lGSUMgU0NIRU1BU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBSb2xlIERlZmluaXRpb24gdmVyc2lvbiAyMDIyLTA0LTAxXG4gKiBUaGlzIGlzIHRoZSBsYXRlc3Qgc3RhYmxlIEFQSSB2ZXJzaW9uIGZvciByb2xlIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBST0xFX0RFRklOSVRJT05fU0NIRU1BXzIwMjJfMDRfMDE6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5BdXRob3JpemF0aW9uL3JvbGVEZWZpbml0aW9uc1wiLFxuICB2ZXJzaW9uOiBcIjIwMjItMDQtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wicm9sZU5hbWVcIiwgXCJwZXJtaXNzaW9uc1wiLCBcImFzc2lnbmFibGVTY29wZXNcIl0sXG4gIG9wdGlvbmFsOiBbXCJuYW1lXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJ0eXBlXCIsIFwiaWdub3JlQ2hhbmdlc1wiXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJyb2xlTmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJSb2xlIG5hbWUgaXMgcmVxdWlyZWQgZm9yIHJvbGUgZGVmaW5pdGlvbnNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJwZXJtaXNzaW9uc1wiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJQZXJtaXNzaW9ucyBhcmUgcmVxdWlyZWQgZm9yIHJvbGUgZGVmaW5pdGlvbnNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJhc3NpZ25hYmxlU2NvcGVzXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkFzc2lnbmFibGUgc2NvcGVzIGFyZSByZXF1aXJlZCBmb3Igcm9sZSBkZWZpbml0aW9uc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZFUlNJT04gQ09ORklHVVJBVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBSb2xlIERlZmluaXRpb24gMjAyMi0wNC0wMVxuICovXG5leHBvcnQgY29uc3QgUk9MRV9ERUZJTklUSU9OX1ZFUlNJT05fMjAyMl8wNF8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDIyLTA0LTAxXCIsXG4gIHNjaGVtYTogUk9MRV9ERUZJTklUSU9OX1NDSEVNQV8yMDIyXzA0XzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDIyLTA0LTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL3JvbGUtZGVmaW5pdGlvbi9taWdyYXRpb24tMjAyMi0wNC0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcImFkZGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJTdGFibGUgcmVsZWFzZSBvZiBSb2xlIERlZmluaXRpb24gQVBJIHdpdGggZnVsbCBzdXBwb3J0IGZvciBjdXN0b20gUkJBQyByb2xlc1wiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFsbCBzdXBwb3J0ZWQgUm9sZSBEZWZpbml0aW9uIHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9ST0xFX0RFRklOSVRJT05fVkVSU0lPTlM6IFZlcnNpb25Db25maWdbXSA9IFtcbiAgUk9MRV9ERUZJTklUSU9OX1ZFUlNJT05fMjAyMl8wNF8wMSxcbl07XG5cbi8qKlxuICogUmVzb3VyY2UgdHlwZSBjb25zdGFudFxuICovXG5leHBvcnQgY29uc3QgUk9MRV9ERUZJTklUSU9OX1RZUEUgPSBcIk1pY3Jvc29mdC5BdXRob3JpemF0aW9uL3JvbGVEZWZpbml0aW9uc1wiO1xuIl19
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Azure Role Definition implementation using VersionedAzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This class provides a version-aware implementation for managing Azure Role Definitions
|
|
5
|
+
* using the AZAPI provider. Role definitions define custom RBAC roles with specific
|
|
6
|
+
* permissions that can be assigned to users, groups, or service principals.
|
|
7
|
+
*
|
|
8
|
+
* Supported API Versions:
|
|
9
|
+
* - 2022-04-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 role permissions (actions, notActions, dataActions, notDataActions)
|
|
16
|
+
* - Assignable scopes configuration (subscription, resource group, management group)
|
|
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
|
+
* Permission configuration for role definitions
|
|
25
|
+
* Defines what actions the role can perform on control plane and data plane
|
|
26
|
+
*/
|
|
27
|
+
export interface RoleDefinitionPermission {
|
|
28
|
+
/**
|
|
29
|
+
* Array of allowed control plane actions
|
|
30
|
+
* Actions are operations that can be performed on Azure resources
|
|
31
|
+
*
|
|
32
|
+
* @example ["Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/virtualMachines/start/action"]
|
|
33
|
+
*/
|
|
34
|
+
readonly actions?: string[];
|
|
35
|
+
/**
|
|
36
|
+
* Array of excluded control plane actions
|
|
37
|
+
* Actions that are explicitly denied even if included in actions array
|
|
38
|
+
*
|
|
39
|
+
* @example ["Microsoft.Compute/virtualMachines/delete"]
|
|
40
|
+
*/
|
|
41
|
+
readonly notActions?: string[];
|
|
42
|
+
/**
|
|
43
|
+
* Array of allowed data plane actions
|
|
44
|
+
* Data actions are operations that can be performed on data within resources
|
|
45
|
+
*
|
|
46
|
+
* @example ["Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"]
|
|
47
|
+
*/
|
|
48
|
+
readonly dataActions?: string[];
|
|
49
|
+
/**
|
|
50
|
+
* Array of excluded data plane actions
|
|
51
|
+
* Data actions that are explicitly denied
|
|
52
|
+
*
|
|
53
|
+
* @example ["Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete"]
|
|
54
|
+
*/
|
|
55
|
+
readonly notDataActions?: string[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Properties for the unified Azure Role Definition
|
|
59
|
+
*
|
|
60
|
+
* Extends AzapiResourceProps with Role Definition specific properties
|
|
61
|
+
*/
|
|
62
|
+
export interface RoleDefinitionProps extends AzapiResourceProps {
|
|
63
|
+
/**
|
|
64
|
+
* The name of the role definition
|
|
65
|
+
* This is the display name shown in the Azure portal
|
|
66
|
+
* Required property
|
|
67
|
+
*
|
|
68
|
+
* @example "Virtual Machine Reader"
|
|
69
|
+
*/
|
|
70
|
+
readonly roleName: string;
|
|
71
|
+
/**
|
|
72
|
+
* The role definition description
|
|
73
|
+
* Provides detailed information about what the role allows
|
|
74
|
+
*
|
|
75
|
+
* @example "Can view virtual machines and their properties"
|
|
76
|
+
*/
|
|
77
|
+
readonly description?: string;
|
|
78
|
+
/**
|
|
79
|
+
* The type of role definition
|
|
80
|
+
* @default "CustomRole"
|
|
81
|
+
* @example "CustomRole", "BuiltInRole"
|
|
82
|
+
*/
|
|
83
|
+
readonly type?: string;
|
|
84
|
+
/**
|
|
85
|
+
* An array of permissions objects that define what actions the role can perform
|
|
86
|
+
* Required property
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* [
|
|
90
|
+
* {
|
|
91
|
+
* actions: ["Microsoft.Compute/virtualMachines/read"],
|
|
92
|
+
* notActions: [],
|
|
93
|
+
* dataActions: [],
|
|
94
|
+
* notDataActions: []
|
|
95
|
+
* }
|
|
96
|
+
* ]
|
|
97
|
+
*/
|
|
98
|
+
readonly permissions: RoleDefinitionPermission[];
|
|
99
|
+
/**
|
|
100
|
+
* An array of scopes where this role can be assigned
|
|
101
|
+
* Can include subscription, resource group, or management group scopes
|
|
102
|
+
* Required property
|
|
103
|
+
*
|
|
104
|
+
* @example ["/subscriptions/00000000-0000-0000-0000-000000000000"]
|
|
105
|
+
* @example ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-name"]
|
|
106
|
+
*/
|
|
107
|
+
readonly assignableScopes: string[];
|
|
108
|
+
/**
|
|
109
|
+
* The lifecycle rules to ignore changes
|
|
110
|
+
* @example ["description"]
|
|
111
|
+
*/
|
|
112
|
+
readonly ignoreChanges?: string[];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Properties interface for Azure Role Definition
|
|
116
|
+
* This is required for JSII compliance to support multi-language code generation
|
|
117
|
+
*/
|
|
118
|
+
export interface RoleDefinitionProperties {
|
|
119
|
+
/**
|
|
120
|
+
* The name of the role definition
|
|
121
|
+
*/
|
|
122
|
+
readonly roleName: string;
|
|
123
|
+
/**
|
|
124
|
+
* The role definition description
|
|
125
|
+
*/
|
|
126
|
+
readonly description?: string;
|
|
127
|
+
/**
|
|
128
|
+
* The type of role definition
|
|
129
|
+
*/
|
|
130
|
+
readonly type?: string;
|
|
131
|
+
/**
|
|
132
|
+
* An array of permissions objects
|
|
133
|
+
*/
|
|
134
|
+
readonly permissions: RoleDefinitionPermission[];
|
|
135
|
+
/**
|
|
136
|
+
* An array of assignable scopes
|
|
137
|
+
*/
|
|
138
|
+
readonly assignableScopes: string[];
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* The resource body interface for Azure Role Definition API calls
|
|
142
|
+
* This matches the Azure REST API schema for role definitions
|
|
143
|
+
*/
|
|
144
|
+
export interface RoleDefinitionBody {
|
|
145
|
+
/**
|
|
146
|
+
* The properties of the role definition
|
|
147
|
+
*/
|
|
148
|
+
readonly properties: RoleDefinitionProperties;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Unified Azure Role Definition implementation
|
|
152
|
+
*
|
|
153
|
+
* This class provides a single, version-aware implementation for managing Azure
|
|
154
|
+
* Role Definitions. It automatically handles version resolution, schema validation,
|
|
155
|
+
* and property transformation.
|
|
156
|
+
*
|
|
157
|
+
* Note: Role definitions are tenant-specific resources deployed at subscription or
|
|
158
|
+
* management group scope. Unlike most Azure resources, they do not have a location
|
|
159
|
+
* property as they are not region-specific.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* Basic custom role definition for read-only access to compute resources
|
|
163
|
+
*
|
|
164
|
+
* Advanced features like data plane actions and complex permissions are supported
|
|
165
|
+
*
|
|
166
|
+
* @stability stable
|
|
167
|
+
*/
|
|
168
|
+
export declare class RoleDefinition extends AzapiResource {
|
|
169
|
+
/**
|
|
170
|
+
* The input properties for this Role Definition instance
|
|
171
|
+
*/
|
|
172
|
+
readonly props: RoleDefinitionProps;
|
|
173
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
174
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
175
|
+
/**
|
|
176
|
+
* Creates a new Azure Role Definition using the VersionedAzapiResource framework
|
|
177
|
+
*
|
|
178
|
+
* The constructor automatically handles version resolution, schema registration,
|
|
179
|
+
* validation, and resource creation.
|
|
180
|
+
*
|
|
181
|
+
* @param scope - The scope in which to define this construct
|
|
182
|
+
* @param id - The unique identifier for this instance
|
|
183
|
+
* @param props - Configuration properties for the Role Definition
|
|
184
|
+
*/
|
|
185
|
+
constructor(scope: Construct, id: string, props: RoleDefinitionProps);
|
|
186
|
+
/**
|
|
187
|
+
* Gets the default API version to use when no explicit version is specified
|
|
188
|
+
* Returns the most recent stable version as the default
|
|
189
|
+
*/
|
|
190
|
+
protected defaultVersion(): string;
|
|
191
|
+
/**
|
|
192
|
+
* Gets the Azure resource type for Role Definitions
|
|
193
|
+
*/
|
|
194
|
+
protected resourceType(): string;
|
|
195
|
+
/**
|
|
196
|
+
* Gets the API schema for the resolved version
|
|
197
|
+
* Uses the framework's schema resolution to get the appropriate schema
|
|
198
|
+
*/
|
|
199
|
+
protected apiSchema(): ApiSchema;
|
|
200
|
+
/**
|
|
201
|
+
* Overrides the name resolution to generate deterministic GUIDs for role definitions
|
|
202
|
+
*
|
|
203
|
+
* Role definitions require GUID format IDs. This implementation generates a deterministic
|
|
204
|
+
* UUID based on the role definition's key properties to ensure:
|
|
205
|
+
* - Same GUID is generated on re-deployments with same parameters
|
|
206
|
+
* - Idempotent deployments (no duplicate role definitions)
|
|
207
|
+
* - Consistent behavior across deployment runs
|
|
208
|
+
*/
|
|
209
|
+
protected resolveName(props: AzapiResourceProps): string;
|
|
210
|
+
/**
|
|
211
|
+
* Creates the resource body for the Azure API call
|
|
212
|
+
* Transforms the input properties into the JSON format expected by Azure REST API
|
|
213
|
+
*
|
|
214
|
+
* Note: Role definitions do not have a location property as they are
|
|
215
|
+
* tenant-specific resources deployed at subscription or management group scope.
|
|
216
|
+
*/
|
|
217
|
+
protected createResourceBody(props: any): any;
|
|
218
|
+
/**
|
|
219
|
+
* Get the full resource identifier for use in other Azure resources
|
|
220
|
+
* Alias for the id property
|
|
221
|
+
*/
|
|
222
|
+
get resourceId(): string;
|
|
223
|
+
/**
|
|
224
|
+
* Get the role name
|
|
225
|
+
*/
|
|
226
|
+
get roleName(): string;
|
|
227
|
+
/**
|
|
228
|
+
* Get the role type
|
|
229
|
+
*/
|
|
230
|
+
get roleType(): string;
|
|
231
|
+
/**
|
|
232
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
233
|
+
* Always includes body.properties.assignableScopes to handle Azure API format normalization
|
|
234
|
+
*/
|
|
235
|
+
private _applyIgnoreChanges;
|
|
236
|
+
}
|