@microsoft/terraform-cdk-constructs 2.2.0 → 2.5.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 +64029 -35477
- package/API.md +89314 -49618
- package/README.md +15 -0
- package/docs/azure-api-version-update-pipeline.md +271 -0
- package/lib/azure-actiongroup/lib/action-group.js +1 -1
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +1 -1
- package/lib/azure-aks/lib/aks-cluster.js +1 -1
- package/lib/azure-applicationinsights/index.d.ts +7 -0
- package/lib/azure-applicationinsights/index.js +24 -0
- package/lib/azure-applicationinsights/lib/application-insights-schemas.d.ts +29 -0
- package/lib/azure-applicationinsights/lib/application-insights-schemas.js +162 -0
- package/lib/azure-applicationinsights/lib/application-insights.d.ts +206 -0
- package/lib/azure-applicationinsights/lib/application-insights.js +209 -0
- package/lib/azure-applicationinsights/lib/index.d.ts +5 -0
- package/lib/azure-applicationinsights/lib/index.js +22 -0
- package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +9 -0
- package/lib/azure-applicationinsights/test/application-insights.integ.js +84 -0
- package/lib/azure-applicationinsights/test/application-insights.spec.d.ts +8 -0
- package/lib/azure-applicationinsights/test/application-insights.spec.js +209 -0
- package/lib/azure-containerapps/lib/container-app-environment.js +1 -1
- package/lib/azure-containerapps/lib/container-app.js +1 -1
- package/lib/azure-containerapps/lib/container-apps-job-schemas.d.ts +8 -0
- package/lib/azure-containerapps/lib/container-apps-job-schemas.js +179 -0
- package/lib/azure-containerapps/lib/container-apps-job.d.ts +128 -0
- package/lib/azure-containerapps/lib/container-apps-job.js +81 -0
- package/lib/azure-containerapps/lib/index.d.ts +2 -0
- package/lib/azure-containerapps/lib/index.js +3 -1
- package/lib/azure-containerapps/test/container-apps-job.integ.d.ts +6 -0
- package/lib/azure-containerapps/test/container-apps-job.integ.js +95 -0
- package/lib/azure-containerapps/test/container-apps-job.spec.d.ts +1 -0
- package/lib/azure-containerapps/test/container-apps-job.spec.js +261 -0
- package/lib/azure-containerregistry/index.d.ts +1 -0
- package/lib/azure-containerregistry/index.js +18 -0
- package/lib/azure-containerregistry/lib/container-registry-schemas.d.ts +32 -0
- package/lib/azure-containerregistry/lib/container-registry-schemas.js +316 -0
- package/lib/azure-containerregistry/lib/container-registry.d.ts +330 -0
- package/lib/azure-containerregistry/lib/container-registry.js +217 -0
- package/lib/azure-containerregistry/lib/index.d.ts +2 -0
- package/lib/azure-containerregistry/lib/index.js +19 -0
- package/lib/azure-containerregistry/test/container-registry.integ.d.ts +9 -0
- package/lib/azure-containerregistry/test/container-registry.integ.js +101 -0
- package/lib/azure-containerregistry/test/container-registry.spec.d.ts +4 -0
- package/lib/azure-containerregistry/test/container-registry.spec.js +425 -0
- package/lib/azure-cosmosdb/index.d.ts +1 -0
- package/lib/azure-cosmosdb/index.js +18 -0
- package/lib/azure-cosmosdb/lib/cosmos-db-schemas.d.ts +40 -0
- package/lib/azure-cosmosdb/lib/cosmos-db-schemas.js +330 -0
- package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +290 -0
- package/lib/azure-cosmosdb/lib/cosmos-db.js +222 -0
- package/lib/azure-cosmosdb/lib/index.d.ts +2 -0
- package/lib/azure-cosmosdb/lib/index.js +19 -0
- package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +9 -0
- package/lib/azure-cosmosdb/test/cosmos-db.integ.js +98 -0
- package/lib/azure-cosmosdb/test/cosmos-db.spec.d.ts +4 -0
- package/lib/azure-cosmosdb/test/cosmos-db.spec.js +339 -0
- package/lib/azure-dataexplorer/index.d.ts +1 -0
- package/lib/azure-dataexplorer/index.js +18 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.js +131 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster.d.ts +54 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster.js +91 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.js +78 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database.d.ts +24 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database.js +68 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.js +94 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table.d.ts +25 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table.js +62 -0
- package/lib/azure-dataexplorer/lib/index.d.ts +6 -0
- package/lib/azure-dataexplorer/lib/index.js +23 -0
- package/lib/azure-dataexplorer/test/data-explorer.integ.d.ts +1 -0
- package/lib/azure-dataexplorer/test/data-explorer.integ.js +78 -0
- package/lib/azure-dataexplorer/test/data-explorer.spec.d.ts +1 -0
- package/lib/azure-dataexplorer/test/data-explorer.spec.js +248 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +1 -1
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
- package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
- package/lib/azure-dnszone/lib/dns-zone.js +1 -1
- package/lib/azure-dnszone/lib/records/dns-records.js +10 -10
- package/lib/azure-eventgrideventsubscription/index.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/index.js +18 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.d.ts +5 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.js +151 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.d.ts +59 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.js +67 -0
- package/lib/azure-eventgrideventsubscription/lib/index.d.ts +2 -0
- package/lib/azure-eventgrideventsubscription/lib/index.js +19 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.js +100 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.js +242 -0
- package/lib/azure-eventgridsystemtopic/index.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/index.js +18 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.d.ts +5 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.js +164 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.d.ts +46 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.js +68 -0
- package/lib/azure-eventgridsystemtopic/lib/index.d.ts +2 -0
- package/lib/azure-eventgridsystemtopic/lib/index.js +19 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.js +64 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.js +241 -0
- package/lib/azure-eventhub/index.d.ts +7 -0
- package/lib/azure-eventhub/index.js +24 -0
- package/lib/azure-eventhub/lib/event-hub-namespace.d.ts +204 -0
- package/lib/azure-eventhub/lib/event-hub-namespace.js +178 -0
- package/lib/azure-eventhub/lib/event-hub-schemas.d.ts +63 -0
- package/lib/azure-eventhub/lib/event-hub-schemas.js +370 -0
- package/lib/azure-eventhub/lib/event-hub.d.ts +153 -0
- package/lib/azure-eventhub/lib/event-hub.js +171 -0
- package/lib/azure-eventhub/lib/index.d.ts +6 -0
- package/lib/azure-eventhub/lib/index.js +23 -0
- package/lib/azure-eventhub/test/event-hub.integ.d.ts +9 -0
- package/lib/azure-eventhub/test/event-hub.integ.js +113 -0
- package/lib/azure-eventhub/test/event-hub.spec.d.ts +8 -0
- package/lib/azure-eventhub/test/event-hub.spec.js +438 -0
- package/lib/azure-functionapp/index.d.ts +1 -0
- package/lib/azure-functionapp/index.js +18 -0
- package/lib/azure-functionapp/lib/function-app-schemas.d.ts +32 -0
- package/lib/azure-functionapp/lib/function-app-schemas.js +303 -0
- package/lib/azure-functionapp/lib/function-app.d.ts +367 -0
- package/lib/azure-functionapp/lib/function-app.js +223 -0
- package/lib/azure-functionapp/lib/index.d.ts +2 -0
- package/lib/azure-functionapp/lib/index.js +19 -0
- package/lib/azure-functionapp/test/function-app.integ.d.ts +12 -0
- package/lib/azure-functionapp/test/function-app.integ.js +134 -0
- package/lib/azure-functionapp/test/function-app.spec.d.ts +4 -0
- package/lib/azure-functionapp/test/function-app.spec.js +566 -0
- package/lib/azure-keyvault/index.d.ts +1 -0
- package/lib/azure-keyvault/index.js +18 -0
- package/lib/azure-keyvault/lib/index.d.ts +2 -0
- package/lib/azure-keyvault/lib/index.js +19 -0
- package/lib/azure-keyvault/lib/key-vault-schemas.d.ts +40 -0
- package/lib/azure-keyvault/lib/key-vault-schemas.js +312 -0
- package/lib/azure-keyvault/lib/key-vault.d.ts +344 -0
- package/lib/azure-keyvault/lib/key-vault.js +243 -0
- package/lib/azure-keyvault/test/key-vault.integ.d.ts +9 -0
- package/lib/azure-keyvault/test/key-vault.integ.js +108 -0
- package/lib/azure-keyvault/test/key-vault.spec.d.ts +4 -0
- package/lib/azure-keyvault/test/key-vault.spec.js +264 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +1 -1
- package/lib/azure-metricalert/lib/metric-alert.js +1 -1
- package/lib/azure-networkinterface/lib/network-interface.js +1 -1
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
- package/lib/azure-networkwatcher/lib/network-watcher.js +1 -1
- package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
- package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +1 -1
- package/lib/azure-privatednszone/lib/private-dns-zone.js +1 -1
- package/lib/azure-privatednszone/lib/records/private-dns-records.js +8 -8
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
- package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
- package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
- package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
- package/lib/azure-roledefinition/lib/role-definition.js +1 -1
- package/lib/azure-sreagent/index.d.ts +1 -0
- package/lib/azure-sreagent/index.js +18 -0
- package/lib/azure-sreagent/lib/index.d.ts +2 -0
- package/lib/azure-sreagent/lib/index.js +19 -0
- package/lib/azure-sreagent/lib/sre-agent-schemas.d.ts +29 -0
- package/lib/azure-sreagent/lib/sre-agent-schemas.js +296 -0
- package/lib/azure-sreagent/lib/sre-agent.d.ts +208 -0
- package/lib/azure-sreagent/lib/sre-agent.js +217 -0
- package/lib/azure-sreagent/test/sre-agent.integ.d.ts +9 -0
- package/lib/azure-sreagent/test/sre-agent.integ.js +78 -0
- package/lib/azure-sreagent/test/sre-agent.spec.d.ts +4 -0
- package/lib/azure-sreagent/test/sre-agent.spec.js +216 -0
- package/lib/azure-staticwebapp/index.d.ts +1 -0
- package/lib/azure-staticwebapp/index.js +18 -0
- package/lib/azure-staticwebapp/lib/index.d.ts +2 -0
- package/lib/azure-staticwebapp/lib/index.js +19 -0
- package/lib/azure-staticwebapp/lib/static-web-app-schemas.d.ts +40 -0
- package/lib/azure-staticwebapp/lib/static-web-app-schemas.js +236 -0
- package/lib/azure-staticwebapp/lib/static-web-app.d.ts +242 -0
- package/lib/azure-staticwebapp/lib/static-web-app.js +232 -0
- package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +9 -0
- package/lib/azure-staticwebapp/test/static-web-app.integ.js +76 -0
- package/lib/azure-staticwebapp/test/static-web-app.spec.d.ts +15 -0
- package/lib/azure-staticwebapp/test/static-web-app.spec.js +293 -0
- package/lib/azure-storageaccount/lib/storage-account.js +1 -1
- package/lib/azure-storageblobcontainer/index.d.ts +1 -0
- package/lib/azure-storageblobcontainer/index.js +18 -0
- package/lib/azure-storageblobcontainer/lib/index.d.ts +2 -0
- package/lib/azure-storageblobcontainer/lib/index.js +19 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.d.ts +5 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.js +108 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container.d.ts +37 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container.js +63 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.d.ts +1 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.js +60 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.d.ts +1 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.js +172 -0
- package/lib/azure-subnet/lib/subnet.js +1 -1
- package/lib/azure-userassignedidentity/index.d.ts +1 -0
- package/lib/azure-userassignedidentity/index.js +18 -0
- package/lib/azure-userassignedidentity/lib/index.d.ts +2 -0
- package/lib/azure-userassignedidentity/lib/index.js +19 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.d.ts +8 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.js +107 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity.d.ts +37 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity.js +85 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.d.ts +1 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.js +64 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.d.ts +1 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.js +241 -0
- package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
- package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +1 -1
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +66 -1
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +141 -2
- package/lib/azure-vmss/lib/vmss-schemas.d.ts +195 -0
- package/lib/azure-vmss/lib/vmss-schemas.js +33 -1
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +463 -1
- package/lib/core-azure/lib/azapi/azapi-resource.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
- package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
- package/lib/index.d.ts +39 -0
- package/lib/index.js +41 -2
- package/lib/testing/index.js +20 -3
- package/lib/testing/lib/cleanup.js +1 -1
- package/lib/testing/lib/metadata.js +12 -4
- package/lib/testing/lib/naming.js +57 -1
- package/package.json +1 -1
- package/scripts/azure-version-updater/create-issue.ts +189 -0
- package/scripts/azure-version-updater/discover.ts +382 -0
- package/scripts/azure-version-updater/spec-mapping.ts +164 -0
- package/scripts/azure-version-updater/tsconfig.json +11 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* API schemas for Azure Container Registry across all supported versions
|
|
4
|
+
*
|
|
5
|
+
* This file defines the complete API schemas for Microsoft.ContainerRegistry/registries
|
|
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.CONTAINER_REGISTRY_TYPE = exports.ALL_CONTAINER_REGISTRY_VERSIONS = exports.CONTAINER_REGISTRY_VERSION_2025_04_01 = exports.CONTAINER_REGISTRY_VERSION_2023_07_01 = exports.CONTAINER_REGISTRY_SCHEMA_2025_04_01 = exports.CONTAINER_REGISTRY_SCHEMA_2023_07_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 Container Registry versions
|
|
17
|
+
*/
|
|
18
|
+
const COMMON_PROPERTIES = {
|
|
19
|
+
location: {
|
|
20
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
21
|
+
required: true,
|
|
22
|
+
description: "The Azure region where the Container Registry will be created",
|
|
23
|
+
validation: [
|
|
24
|
+
{
|
|
25
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
26
|
+
message: "Location is required for Container Registries",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
30
|
+
value: "^[a-z0-9]+$",
|
|
31
|
+
message: "Location must contain only lowercase letters and numbers",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
tags: {
|
|
36
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
37
|
+
required: false,
|
|
38
|
+
defaultValue: {},
|
|
39
|
+
description: "A dictionary of tags to apply to the Container Registry",
|
|
40
|
+
validation: [
|
|
41
|
+
{
|
|
42
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
43
|
+
value: version_interfaces_1.PropertyType.OBJECT,
|
|
44
|
+
message: "Tags must be an object with string key-value pairs",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
name: {
|
|
49
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
50
|
+
required: true,
|
|
51
|
+
description: "The name of the Container Registry. Must be globally unique, 5-50 alphanumeric characters",
|
|
52
|
+
validation: [
|
|
53
|
+
{
|
|
54
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
55
|
+
message: "Container Registry name is required",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
59
|
+
value: "^[a-zA-Z0-9]{5,50}$",
|
|
60
|
+
message: "Container Registry name must be 5-50 alphanumeric characters only",
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
sku: {
|
|
65
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
66
|
+
required: true,
|
|
67
|
+
description: "The SKU (pricing tier) for the Container Registry (Basic, Standard, Premium)",
|
|
68
|
+
validation: [
|
|
69
|
+
{
|
|
70
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
71
|
+
message: "SKU is required for Container Registries",
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
adminUserEnabled: {
|
|
76
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
77
|
+
required: false,
|
|
78
|
+
defaultValue: false,
|
|
79
|
+
description: "Whether the admin user is enabled for the registry",
|
|
80
|
+
},
|
|
81
|
+
publicNetworkAccess: {
|
|
82
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
83
|
+
required: false,
|
|
84
|
+
defaultValue: "Enabled",
|
|
85
|
+
description: "Whether public network access is enabled (Enabled or Disabled)",
|
|
86
|
+
validation: [
|
|
87
|
+
{
|
|
88
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
89
|
+
value: "^(Enabled|Disabled)$",
|
|
90
|
+
message: "Public network access must be either 'Enabled' or 'Disabled'",
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
},
|
|
94
|
+
networkRuleSet: {
|
|
95
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
96
|
+
required: false,
|
|
97
|
+
description: "Network rule set configuration for the Container Registry (Premium SKU only)",
|
|
98
|
+
},
|
|
99
|
+
encryption: {
|
|
100
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
101
|
+
required: false,
|
|
102
|
+
description: "Encryption settings with customer-managed keys (Premium SKU only)",
|
|
103
|
+
},
|
|
104
|
+
policies: {
|
|
105
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
106
|
+
required: false,
|
|
107
|
+
description: "Policy configuration including retention, trust, export, quarantine, and soft delete policies",
|
|
108
|
+
},
|
|
109
|
+
identity: {
|
|
110
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
111
|
+
required: false,
|
|
112
|
+
description: "Managed identity configuration for the Container Registry",
|
|
113
|
+
},
|
|
114
|
+
zoneRedundancy: {
|
|
115
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
116
|
+
required: false,
|
|
117
|
+
defaultValue: "Disabled",
|
|
118
|
+
description: "Whether zone redundancy is enabled (Enabled or Disabled, Premium SKU only)",
|
|
119
|
+
validation: [
|
|
120
|
+
{
|
|
121
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
122
|
+
value: "^(Enabled|Disabled)$",
|
|
123
|
+
message: "Zone redundancy must be either 'Enabled' or 'Disabled'",
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
dataEndpointEnabled: {
|
|
128
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
129
|
+
required: false,
|
|
130
|
+
defaultValue: false,
|
|
131
|
+
description: "Whether to enable a dedicated data endpoint (Premium SKU only)",
|
|
132
|
+
},
|
|
133
|
+
anonymousPullEnabled: {
|
|
134
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
135
|
+
required: false,
|
|
136
|
+
defaultValue: false,
|
|
137
|
+
description: "Whether anonymous pull is enabled for unauthenticated access (Standard or Premium SKU)",
|
|
138
|
+
},
|
|
139
|
+
networkRuleBypassOptions: {
|
|
140
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
141
|
+
required: false,
|
|
142
|
+
defaultValue: "AzureServices",
|
|
143
|
+
description: "Whether to allow trusted Azure Services to access a network restricted registry",
|
|
144
|
+
validation: [
|
|
145
|
+
{
|
|
146
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
147
|
+
value: "^(AzureServices|None)$",
|
|
148
|
+
message: "Network rule bypass options must be either 'AzureServices' or 'None'",
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
},
|
|
152
|
+
ignoreChanges: {
|
|
153
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
154
|
+
required: false,
|
|
155
|
+
description: "Array of property names to ignore during updates",
|
|
156
|
+
validation: [
|
|
157
|
+
{
|
|
158
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
159
|
+
value: version_interfaces_1.PropertyType.ARRAY,
|
|
160
|
+
message: "IgnoreChanges must be an array of strings",
|
|
161
|
+
},
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
// =============================================================================
|
|
166
|
+
// VERSION-SPECIFIC SCHEMAS
|
|
167
|
+
// =============================================================================
|
|
168
|
+
/**
|
|
169
|
+
* API Schema for Container Registry version 2023-07-01
|
|
170
|
+
*/
|
|
171
|
+
exports.CONTAINER_REGISTRY_SCHEMA_2023_07_01 = {
|
|
172
|
+
resourceType: "Microsoft.ContainerRegistry/registries",
|
|
173
|
+
version: "2023-07-01",
|
|
174
|
+
properties: {
|
|
175
|
+
...COMMON_PROPERTIES,
|
|
176
|
+
},
|
|
177
|
+
required: ["location", "name", "sku"],
|
|
178
|
+
optional: [
|
|
179
|
+
"tags",
|
|
180
|
+
"adminUserEnabled",
|
|
181
|
+
"publicNetworkAccess",
|
|
182
|
+
"networkRuleSet",
|
|
183
|
+
"encryption",
|
|
184
|
+
"policies",
|
|
185
|
+
"identity",
|
|
186
|
+
"zoneRedundancy",
|
|
187
|
+
"dataEndpointEnabled",
|
|
188
|
+
"anonymousPullEnabled",
|
|
189
|
+
"networkRuleBypassOptions",
|
|
190
|
+
"ignoreChanges",
|
|
191
|
+
],
|
|
192
|
+
deprecated: [],
|
|
193
|
+
transformationRules: {},
|
|
194
|
+
validationRules: [
|
|
195
|
+
{
|
|
196
|
+
property: "location",
|
|
197
|
+
rules: [
|
|
198
|
+
{
|
|
199
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
200
|
+
message: "Location is required for Container Registries",
|
|
201
|
+
},
|
|
202
|
+
],
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
property: "name",
|
|
206
|
+
rules: [
|
|
207
|
+
{
|
|
208
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
209
|
+
message: "Name is required for Container Registries",
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* API Schema for Container Registry version 2025-04-01
|
|
217
|
+
*/
|
|
218
|
+
exports.CONTAINER_REGISTRY_SCHEMA_2025_04_01 = {
|
|
219
|
+
resourceType: "Microsoft.ContainerRegistry/registries",
|
|
220
|
+
version: "2025-04-01",
|
|
221
|
+
properties: {
|
|
222
|
+
...COMMON_PROPERTIES,
|
|
223
|
+
},
|
|
224
|
+
required: ["location", "name", "sku"],
|
|
225
|
+
optional: [
|
|
226
|
+
"tags",
|
|
227
|
+
"adminUserEnabled",
|
|
228
|
+
"publicNetworkAccess",
|
|
229
|
+
"networkRuleSet",
|
|
230
|
+
"encryption",
|
|
231
|
+
"policies",
|
|
232
|
+
"identity",
|
|
233
|
+
"zoneRedundancy",
|
|
234
|
+
"dataEndpointEnabled",
|
|
235
|
+
"anonymousPullEnabled",
|
|
236
|
+
"networkRuleBypassOptions",
|
|
237
|
+
"ignoreChanges",
|
|
238
|
+
],
|
|
239
|
+
deprecated: [],
|
|
240
|
+
transformationRules: {},
|
|
241
|
+
validationRules: [
|
|
242
|
+
{
|
|
243
|
+
property: "location",
|
|
244
|
+
rules: [
|
|
245
|
+
{
|
|
246
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
247
|
+
message: "Location is required for Container Registries",
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
property: "name",
|
|
253
|
+
rules: [
|
|
254
|
+
{
|
|
255
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
256
|
+
message: "Name is required for Container Registries",
|
|
257
|
+
},
|
|
258
|
+
],
|
|
259
|
+
},
|
|
260
|
+
],
|
|
261
|
+
};
|
|
262
|
+
// =============================================================================
|
|
263
|
+
// VERSION CONFIGURATIONS
|
|
264
|
+
// =============================================================================
|
|
265
|
+
/**
|
|
266
|
+
* Version configuration for Container Registry 2023-07-01
|
|
267
|
+
*/
|
|
268
|
+
exports.CONTAINER_REGISTRY_VERSION_2023_07_01 = {
|
|
269
|
+
version: "2023-07-01",
|
|
270
|
+
schema: exports.CONTAINER_REGISTRY_SCHEMA_2023_07_01,
|
|
271
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.MAINTENANCE,
|
|
272
|
+
releaseDate: "2023-07-01",
|
|
273
|
+
deprecationDate: undefined,
|
|
274
|
+
sunsetDate: undefined,
|
|
275
|
+
breakingChanges: [],
|
|
276
|
+
migrationGuide: "/docs/container-registry/migration-2023-07-01",
|
|
277
|
+
changeLog: [
|
|
278
|
+
{
|
|
279
|
+
changeType: "updated",
|
|
280
|
+
description: "Stable release with policy and encryption support",
|
|
281
|
+
breaking: false,
|
|
282
|
+
},
|
|
283
|
+
],
|
|
284
|
+
};
|
|
285
|
+
/**
|
|
286
|
+
* Version configuration for Container Registry 2025-04-01
|
|
287
|
+
*/
|
|
288
|
+
exports.CONTAINER_REGISTRY_VERSION_2025_04_01 = {
|
|
289
|
+
version: "2025-04-01",
|
|
290
|
+
schema: exports.CONTAINER_REGISTRY_SCHEMA_2025_04_01,
|
|
291
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
292
|
+
releaseDate: "2025-04-01",
|
|
293
|
+
deprecationDate: undefined,
|
|
294
|
+
sunsetDate: undefined,
|
|
295
|
+
breakingChanges: [],
|
|
296
|
+
migrationGuide: "/docs/container-registry/migration-2025-04-01",
|
|
297
|
+
changeLog: [
|
|
298
|
+
{
|
|
299
|
+
changeType: "updated",
|
|
300
|
+
description: "Latest API version with improved features and performance enhancements",
|
|
301
|
+
breaking: false,
|
|
302
|
+
},
|
|
303
|
+
],
|
|
304
|
+
};
|
|
305
|
+
/**
|
|
306
|
+
* All supported Container Registry versions for registration
|
|
307
|
+
*/
|
|
308
|
+
exports.ALL_CONTAINER_REGISTRY_VERSIONS = [
|
|
309
|
+
exports.CONTAINER_REGISTRY_VERSION_2023_07_01,
|
|
310
|
+
exports.CONTAINER_REGISTRY_VERSION_2025_04_01,
|
|
311
|
+
];
|
|
312
|
+
/**
|
|
313
|
+
* Resource type constant
|
|
314
|
+
*/
|
|
315
|
+
exports.CONTAINER_REGISTRY_TYPE = "Microsoft.ContainerRegistry/registries";
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLXJlZ2lzdHJ5LXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtY29udGFpbmVycmVnaXN0cnkvbGliL2NvbnRhaW5lci1yZWdpc3RyeS1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQTBDO0lBQy9ELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1QsK0RBQStEO1FBQ2pFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUsK0NBQStDO2FBQ3pEO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFDLEtBQUssRUFBRSxhQUFhO2dCQUNwQixPQUFPLEVBQUUsMERBQTBEO2FBQ3BFO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsRUFBRTtRQUNoQixXQUFXLEVBQUUseURBQXlEO1FBQ3RFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxVQUFVO2dCQUN2QyxLQUFLLEVBQUUsaUNBQVksQ0FBQyxNQUFNO2dCQUMxQixPQUFPLEVBQUUsb0RBQW9EO2FBQzlEO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1QsMkZBQTJGO1FBQzdGLFVBQVUsRUFBRTtZQUNW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RTtRQUNUO1lBQ0UsVUFBVSxFQUFFLFNBQVM7WUFDckIsV0FBVyxFQUFFLG1EQUFtRDtZQUNoRSxRQUFRLEVBQUUsS0FBSztTQUNoQjtLQUNGO0NBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxxQ0FBcUMsR0FBa0I7SUFDbEUsT0FBTyxFQUFFLFlBQVk7SUFDckIsTUFBTSxFQUFFLDRDQUFvQztJQUM1QyxZQUFZLEVBQUUsd0NBQW1CLENBQUMsTUFBTTtJQUN4QyxXQUFXLEVBQUUsWUFBWTtJQUN6QixlQUFlLEVBQUUsU0FBUztJQUMxQixVQUFVLEVBQUUsU0FBUztJQUNyQixlQUFlLEVBQUUsRUFBRTtJQUNuQixjQUFjLEVBQUUsK0NBQStDO0lBQy9ELFNBQVMsRUFBRTtRQUNUO1lBQ0UsVUFBVSxFQUFFLFNBQVM7WUFDckIsV0FBVyxFQUNULHdFQUF3RTtZQUMxRSxRQUFRLEVBQUUsS0FBSztTQUNoQjtLQUNGO0NBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSwrQkFBK0IsR0FBb0I7SUFDOUQsNkNBQXFDO0lBQ3JDLDZDQUFxQztDQUN0QyxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLHVCQUF1QixHQUFHLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBUEkgc2NoZW1hcyBmb3IgQXp1cmUgQ29udGFpbmVyIFJlZ2lzdHJ5IGFjcm9zcyBhbGwgc3VwcG9ydGVkIHZlcnNpb25zXG4gKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIGNvbXBsZXRlIEFQSSBzY2hlbWFzIGZvciBNaWNyb3NvZnQuQ29udGFpbmVyUmVnaXN0cnkvcmVnaXN0cmllc1xuICogYWNyb3NzIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zLiBUaGUgc2NoZW1hcyBhcmUgdXNlZCBieSB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZVxuICogZnJhbWV3b3JrIGZvciB2YWxpZGF0aW9uLCB0cmFuc2Zvcm1hdGlvbiwgYW5kIHZlcnNpb24gbWFuYWdlbWVudC5cbiAqL1xuXG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTU1PTiBQUk9QRVJUWSBERUZJTklUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydHkgZGVmaW5pdGlvbnMgc2hhcmVkIGFjcm9zcyBhbGwgQ29udGFpbmVyIFJlZ2lzdHJ5IHZlcnNpb25zXG4gKi9cbmNvbnN0IENPTU1PTl9QUk9QRVJUSUVTOiB7IFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbiB9ID0ge1xuICBsb2NhdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSBDb250YWluZXIgUmVnaXN0cnkgd2lsbCBiZSBjcmVhdGVkXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBDb250YWluZXIgUmVnaXN0cmllc1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeW2EtejAtOV0rJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIG11c3QgY29udGFpbiBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzIGFuZCBudW1iZXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRhZ3M6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiB7fSxcbiAgICBkZXNjcmlwdGlvbjogXCJBIGRpY3Rpb25hcnkgb2YgdGFncyB0byBhcHBseSB0byB0aGUgQ29udGFpbmVyIFJlZ2lzdHJ5XCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgICAgICBtZXNzYWdlOiBcIlRhZ3MgbXVzdCBiZSBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5LXZhbHVlIHBhaXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIG5hbWUgb2YgdGhlIENvbnRhaW5lciBSZWdpc3RyeS4gTXVzdCBiZSBnbG9iYWxseSB1bmlxdWUsIDUtNTAgYWxwaGFudW1lcmljIGNoYXJhY3RlcnNcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiQ29udGFpbmVyIFJlZ2lzdHJ5IG5hbWUgaXMgcmVxdWlyZWRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXpBLVowLTldezUsNTB9JFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiQ29udGFpbmVyIFJlZ2lzdHJ5IG5hbWUgbXVzdCBiZSA1LTUwIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9ubHlcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2t1OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlRoZSBTS1UgKHByaWNpbmcgdGllcikgZm9yIHRoZSBDb250YWluZXIgUmVnaXN0cnkgKEJhc2ljLCBTdGFuZGFyZCwgUHJlbWl1bSlcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiU0tVIGlzIHJlcXVpcmVkIGZvciBDb250YWluZXIgUmVnaXN0cmllc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBhZG1pblVzZXJFbmFibGVkOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdGhlIGFkbWluIHVzZXIgaXMgZW5hYmxlZCBmb3IgdGhlIHJlZ2lzdHJ5XCIsXG4gIH0sXG4gIHB1YmxpY05ldHdvcmtBY2Nlc3M6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBcIkVuYWJsZWRcIixcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiV2hldGhlciBwdWJsaWMgbmV0d29yayBhY2Nlc3MgaXMgZW5hYmxlZCAoRW5hYmxlZCBvciBEaXNhYmxlZClcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXihFbmFibGVkfERpc2FibGVkKSRcIixcbiAgICAgICAgbWVzc2FnZTogXCJQdWJsaWMgbmV0d29yayBhY2Nlc3MgbXVzdCBiZSBlaXRoZXIgJ0VuYWJsZWQnIG9yICdEaXNhYmxlZCdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbmV0d29ya1J1bGVTZXQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIk5ldHdvcmsgcnVsZSBzZXQgY29uZmlndXJhdGlvbiBmb3IgdGhlIENvbnRhaW5lciBSZWdpc3RyeSAoUHJlbWl1bSBTS1Ugb25seSlcIixcbiAgfSxcbiAgZW5jcnlwdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiRW5jcnlwdGlvbiBzZXR0aW5ncyB3aXRoIGN1c3RvbWVyLW1hbmFnZWQga2V5cyAoUHJlbWl1bSBTS1Ugb25seSlcIixcbiAgfSxcbiAgcG9saWNpZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlBvbGljeSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyByZXRlbnRpb24sIHRydXN0LCBleHBvcnQsIHF1YXJhbnRpbmUsIGFuZCBzb2Z0IGRlbGV0ZSBwb2xpY2llc1wiLFxuICB9LFxuICBpZGVudGl0eToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJNYW5hZ2VkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBDb250YWluZXIgUmVnaXN0cnlcIixcbiAgfSxcbiAgem9uZVJlZHVuZGFuY3k6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBcIkRpc2FibGVkXCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIldoZXRoZXIgem9uZSByZWR1bmRhbmN5IGlzIGVuYWJsZWQgKEVuYWJsZWQgb3IgRGlzYWJsZWQsIFByZW1pdW0gU0tVIG9ubHkpXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl4oRW5hYmxlZHxEaXNhYmxlZCkkXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiWm9uZSByZWR1bmRhbmN5IG11c3QgYmUgZWl0aGVyICdFbmFibGVkJyBvciAnRGlzYWJsZWQnXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGRhdGFFbmRwb2ludEVuYWJsZWQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIldoZXRoZXIgdG8gZW5hYmxlIGEgZGVkaWNhdGVkIGRhdGEgZW5kcG9pbnQgKFByZW1pdW0gU0tVIG9ubHkpXCIsXG4gIH0sXG4gIGFub255bW91c1B1bGxFbmFibGVkOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJXaGV0aGVyIGFub255bW91cyBwdWxsIGlzIGVuYWJsZWQgZm9yIHVuYXV0aGVudGljYXRlZCBhY2Nlc3MgKFN0YW5kYXJkIG9yIFByZW1pdW0gU0tVKVwiLFxuICB9LFxuICBuZXR3b3JrUnVsZUJ5cGFzc09wdGlvbnM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBcIkF6dXJlU2VydmljZXNcIixcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiV2hldGhlciB0byBhbGxvdyB0cnVzdGVkIEF6dXJlIFNlcnZpY2VzIHRvIGFjY2VzcyBhIG5ldHdvcmsgcmVzdHJpY3RlZCByZWdpc3RyeVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeKEF6dXJlU2VydmljZXN8Tm9uZSkkXCIsXG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgXCJOZXR3b3JrIHJ1bGUgYnlwYXNzIG9wdGlvbnMgbXVzdCBiZSBlaXRoZXIgJ0F6dXJlU2VydmljZXMnIG9yICdOb25lJ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBpZ25vcmVDaGFuZ2VzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiQXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgdG8gaWdub3JlIGR1cmluZyB1cGRhdGVzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgICAgIG1lc3NhZ2U6IFwiSWdub3JlQ2hhbmdlcyBtdXN0IGJlIGFuIGFycmF5IG9mIHN0cmluZ3NcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OLVNQRUNJRklDIFNDSEVNQVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgQ29udGFpbmVyIFJlZ2lzdHJ5IHZlcnNpb24gMjAyMy0wNy0wMVxuICovXG5leHBvcnQgY29uc3QgQ09OVEFJTkVSX1JFR0lTVFJZX1NDSEVNQV8yMDIzXzA3XzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuQ29udGFpbmVyUmVnaXN0cnkvcmVnaXN0cmllc1wiLFxuICB2ZXJzaW9uOiBcIjIwMjMtMDctMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIiwgXCJuYW1lXCIsIFwic2t1XCJdLFxuICBvcHRpb25hbDogW1xuICAgIFwidGFnc1wiLFxuICAgIFwiYWRtaW5Vc2VyRW5hYmxlZFwiLFxuICAgIFwicHVibGljTmV0d29ya0FjY2Vzc1wiLFxuICAgIFwibmV0d29ya1J1bGVTZXRcIixcbiAgICBcImVuY3J5cHRpb25cIixcbiAgICBcInBvbGljaWVzXCIsXG4gICAgXCJpZGVudGl0eVwiLFxuICAgIFwiem9uZVJlZHVuZGFuY3lcIixcbiAgICBcImRhdGFFbmRwb2ludEVuYWJsZWRcIixcbiAgICBcImFub255bW91c1B1bGxFbmFibGVkXCIsXG4gICAgXCJuZXR3b3JrUnVsZUJ5cGFzc09wdGlvbnNcIixcbiAgICBcImlnbm9yZUNoYW5nZXNcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgQ29udGFpbmVyIFJlZ2lzdHJpZXNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIENvbnRhaW5lciBSZWdpc3RyaWVzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIENvbnRhaW5lciBSZWdpc3RyeSB2ZXJzaW9uIDIwMjUtMDQtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IENPTlRBSU5FUl9SRUdJU1RSWV9TQ0hFTUFfMjAyNV8wNF8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LkNvbnRhaW5lclJlZ2lzdHJ5L3JlZ2lzdHJpZXNcIixcbiAgdmVyc2lvbjogXCIyMDI1LTA0LTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcInNrdVwiXSxcbiAgb3B0aW9uYWw6IFtcbiAgICBcInRhZ3NcIixcbiAgICBcImFkbWluVXNlckVuYWJsZWRcIixcbiAgICBcInB1YmxpY05ldHdvcmtBY2Nlc3NcIixcbiAgICBcIm5ldHdvcmtSdWxlU2V0XCIsXG4gICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgXCJwb2xpY2llc1wiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgICBcInpvbmVSZWR1bmRhbmN5XCIsXG4gICAgXCJkYXRhRW5kcG9pbnRFbmFibGVkXCIsXG4gICAgXCJhbm9ueW1vdXNQdWxsRW5hYmxlZFwiLFxuICAgIFwibmV0d29ya1J1bGVCeXBhc3NPcHRpb25zXCIsXG4gICAgXCJpZ25vcmVDaGFuZ2VzXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvbnRhaW5lciBSZWdpc3RyaWVzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBDb250YWluZXIgUmVnaXN0cmllc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZFUlNJT04gQ09ORklHVVJBVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBDb250YWluZXIgUmVnaXN0cnkgMjAyMy0wNy0wMVxuICovXG5leHBvcnQgY29uc3QgQ09OVEFJTkVSX1JFR0lTVFJZX1ZFUlNJT05fMjAyM18wN18wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDIzLTA3LTAxXCIsXG4gIHNjaGVtYTogQ09OVEFJTkVSX1JFR0lTVFJZX1NDSEVNQV8yMDIzXzA3XzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuTUFJTlRFTkFOQ0UsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjMtMDctMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvY29udGFpbmVyLXJlZ2lzdHJ5L21pZ3JhdGlvbi0yMDIzLTA3LTAxXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwidXBkYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiU3RhYmxlIHJlbGVhc2Ugd2l0aCBwb2xpY3kgYW5kIGVuY3J5cHRpb24gc3VwcG9ydFwiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgQ29udGFpbmVyIFJlZ2lzdHJ5IDIwMjUtMDQtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IENPTlRBSU5FUl9SRUdJU1RSWV9WRVJTSU9OXzIwMjVfMDRfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNS0wNC0wMVwiLFxuICBzY2hlbWE6IENPTlRBSU5FUl9SRUdJU1RSWV9TQ0hFTUFfMjAyNV8wNF8wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyNS0wNC0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy9jb250YWluZXItcmVnaXN0cnkvbWlncmF0aW9uLTIwMjUtMDQtMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJ1cGRhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJMYXRlc3QgQVBJIHZlcnNpb24gd2l0aCBpbXByb3ZlZCBmZWF0dXJlcyBhbmQgcGVyZm9ybWFuY2UgZW5oYW5jZW1lbnRzXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBDb250YWluZXIgUmVnaXN0cnkgdmVyc2lvbnMgZm9yIHJlZ2lzdHJhdGlvblxuICovXG5leHBvcnQgY29uc3QgQUxMX0NPTlRBSU5FUl9SRUdJU1RSWV9WRVJTSU9OUzogVmVyc2lvbkNvbmZpZ1tdID0gW1xuICBDT05UQUlORVJfUkVHSVNUUllfVkVSU0lPTl8yMDIzXzA3XzAxLFxuICBDT05UQUlORVJfUkVHSVNUUllfVkVSU0lPTl8yMDI1XzA0XzAxLFxuXTtcblxuLyoqXG4gKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50XG4gKi9cbmV4cG9ydCBjb25zdCBDT05UQUlORVJfUkVHSVNUUllfVFlQRSA9IFwiTWljcm9zb2Z0LkNvbnRhaW5lclJlZ2lzdHJ5L3JlZ2lzdHJpZXNcIjtcbiJdfQ==
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Azure Container Registry implementation using VersionedAzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This class provides a single, version-aware implementation for Azure Container Registry
|
|
5
|
+
* that automatically handles version management, schema validation, and property transformation
|
|
6
|
+
* across all supported API versions.
|
|
7
|
+
*
|
|
8
|
+
* Supported API Versions:
|
|
9
|
+
* - 2023-07-01 (Maintenance)
|
|
10
|
+
* - 2025-04-01 (Active, Latest)
|
|
11
|
+
*
|
|
12
|
+
* Features:
|
|
13
|
+
* - Automatic latest version resolution when no version is specified
|
|
14
|
+
* - Explicit version pinning for stability requirements
|
|
15
|
+
* - Schema-driven validation and transformation
|
|
16
|
+
* - JSII compliance for multi-language support
|
|
17
|
+
*/
|
|
18
|
+
import * as cdktn from "cdktn";
|
|
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
|
+
* SKU configuration for Container Registry
|
|
24
|
+
*/
|
|
25
|
+
export interface ContainerRegistrySku {
|
|
26
|
+
/**
|
|
27
|
+
* The SKU name (Basic, Standard, Premium)
|
|
28
|
+
*/
|
|
29
|
+
readonly name: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* IP rule for network rule set
|
|
33
|
+
*/
|
|
34
|
+
export interface ContainerRegistryIpRule {
|
|
35
|
+
/**
|
|
36
|
+
* IP address or CIDR range
|
|
37
|
+
*/
|
|
38
|
+
readonly value: string;
|
|
39
|
+
/**
|
|
40
|
+
* The action of IP ACL rule (Allow)
|
|
41
|
+
* @default "Allow"
|
|
42
|
+
*/
|
|
43
|
+
readonly action?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Network rule set configuration for Container Registry
|
|
47
|
+
*/
|
|
48
|
+
export interface ContainerRegistryNetworkRuleSet {
|
|
49
|
+
/**
|
|
50
|
+
* Default action when no rule matches (Allow or Deny)
|
|
51
|
+
* @default "Allow"
|
|
52
|
+
*/
|
|
53
|
+
readonly defaultAction?: string;
|
|
54
|
+
/**
|
|
55
|
+
* IP rules for the Container Registry
|
|
56
|
+
*/
|
|
57
|
+
readonly ipRules?: ContainerRegistryIpRule[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Key vault properties for encryption
|
|
61
|
+
*/
|
|
62
|
+
export interface ContainerRegistryKeyVaultProperties {
|
|
63
|
+
/**
|
|
64
|
+
* The client ID of the identity used to access the key vault
|
|
65
|
+
*/
|
|
66
|
+
readonly identity?: string;
|
|
67
|
+
/**
|
|
68
|
+
* The key identifier of the key vault key
|
|
69
|
+
*/
|
|
70
|
+
readonly keyIdentifier?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Encryption configuration for Container Registry
|
|
74
|
+
*/
|
|
75
|
+
export interface ContainerRegistryEncryption {
|
|
76
|
+
/**
|
|
77
|
+
* Key vault properties for customer-managed key encryption
|
|
78
|
+
*/
|
|
79
|
+
readonly keyVaultProperties?: ContainerRegistryKeyVaultProperties;
|
|
80
|
+
/**
|
|
81
|
+
* The encryption status (enabled or disabled)
|
|
82
|
+
* @default "disabled"
|
|
83
|
+
*/
|
|
84
|
+
readonly status?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Retention policy for Container Registry
|
|
88
|
+
*/
|
|
89
|
+
export interface ContainerRegistryRetentionPolicy {
|
|
90
|
+
/**
|
|
91
|
+
* Number of days to retain untagged manifests
|
|
92
|
+
* @default 7
|
|
93
|
+
*/
|
|
94
|
+
readonly days?: number;
|
|
95
|
+
/**
|
|
96
|
+
* The retention policy status (enabled or disabled)
|
|
97
|
+
* @default "disabled"
|
|
98
|
+
*/
|
|
99
|
+
readonly status?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Trust policy for Container Registry
|
|
103
|
+
*/
|
|
104
|
+
export interface ContainerRegistryTrustPolicy {
|
|
105
|
+
/**
|
|
106
|
+
* The trust policy type (Notary)
|
|
107
|
+
* @default "Notary"
|
|
108
|
+
*/
|
|
109
|
+
readonly type?: string;
|
|
110
|
+
/**
|
|
111
|
+
* The trust policy status (enabled or disabled)
|
|
112
|
+
* @default "disabled"
|
|
113
|
+
*/
|
|
114
|
+
readonly status?: string;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Export policy for Container Registry
|
|
118
|
+
*/
|
|
119
|
+
export interface ContainerRegistryExportPolicy {
|
|
120
|
+
/**
|
|
121
|
+
* The export policy status (enabled or disabled)
|
|
122
|
+
* @default "enabled"
|
|
123
|
+
*/
|
|
124
|
+
readonly status?: string;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Soft delete policy for Container Registry
|
|
128
|
+
*/
|
|
129
|
+
export interface ContainerRegistrySoftDeletePolicy {
|
|
130
|
+
/**
|
|
131
|
+
* Number of days after which a soft-deleted item is permanently deleted
|
|
132
|
+
* @default 7
|
|
133
|
+
*/
|
|
134
|
+
readonly retentionDays?: number;
|
|
135
|
+
/**
|
|
136
|
+
* The soft delete policy status (enabled or disabled)
|
|
137
|
+
* @default "disabled"
|
|
138
|
+
*/
|
|
139
|
+
readonly status?: string;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Policy configuration for Container Registry
|
|
143
|
+
*/
|
|
144
|
+
export interface ContainerRegistryPolicies {
|
|
145
|
+
/**
|
|
146
|
+
* Retention policy for untagged manifests
|
|
147
|
+
*/
|
|
148
|
+
readonly retentionPolicy?: ContainerRegistryRetentionPolicy;
|
|
149
|
+
/**
|
|
150
|
+
* Trust policy for content trust
|
|
151
|
+
*/
|
|
152
|
+
readonly trustPolicy?: ContainerRegistryTrustPolicy;
|
|
153
|
+
/**
|
|
154
|
+
* Export policy for the registry
|
|
155
|
+
*/
|
|
156
|
+
readonly exportPolicy?: ContainerRegistryExportPolicy;
|
|
157
|
+
/**
|
|
158
|
+
* Soft delete policy for the registry
|
|
159
|
+
*/
|
|
160
|
+
readonly softDeletePolicy?: ContainerRegistrySoftDeletePolicy;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Identity configuration for Container Registry
|
|
164
|
+
*/
|
|
165
|
+
export interface ContainerRegistryIdentity {
|
|
166
|
+
/**
|
|
167
|
+
* The type of identity (SystemAssigned, UserAssigned, SystemAssigned,UserAssigned)
|
|
168
|
+
*/
|
|
169
|
+
readonly type: string;
|
|
170
|
+
/**
|
|
171
|
+
* User assigned identity IDs
|
|
172
|
+
*/
|
|
173
|
+
readonly userAssignedIdentities?: {
|
|
174
|
+
[key: string]: any;
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Properties for the unified Azure Container Registry
|
|
179
|
+
*
|
|
180
|
+
* Extends AzapiResourceProps with Container Registry specific properties
|
|
181
|
+
*/
|
|
182
|
+
export interface ContainerRegistryProps extends AzapiResourceProps {
|
|
183
|
+
/**
|
|
184
|
+
* The SKU (pricing tier) for the Container Registry
|
|
185
|
+
* @example { name: "Standard" }
|
|
186
|
+
*/
|
|
187
|
+
readonly sku: ContainerRegistrySku;
|
|
188
|
+
/**
|
|
189
|
+
* Whether the admin user is enabled
|
|
190
|
+
* @default false
|
|
191
|
+
*/
|
|
192
|
+
readonly adminUserEnabled?: boolean;
|
|
193
|
+
/**
|
|
194
|
+
* Whether public network access is enabled
|
|
195
|
+
* @default "Enabled"
|
|
196
|
+
*/
|
|
197
|
+
readonly publicNetworkAccess?: string;
|
|
198
|
+
/**
|
|
199
|
+
* Network rule set configuration (Premium SKU only)
|
|
200
|
+
*/
|
|
201
|
+
readonly networkRuleSet?: ContainerRegistryNetworkRuleSet;
|
|
202
|
+
/**
|
|
203
|
+
* Encryption settings with customer-managed keys (Premium SKU only)
|
|
204
|
+
*/
|
|
205
|
+
readonly encryption?: ContainerRegistryEncryption;
|
|
206
|
+
/**
|
|
207
|
+
* Policy configuration for the registry
|
|
208
|
+
*/
|
|
209
|
+
readonly policies?: ContainerRegistryPolicies;
|
|
210
|
+
/**
|
|
211
|
+
* Managed identity configuration
|
|
212
|
+
*/
|
|
213
|
+
readonly identity?: ContainerRegistryIdentity;
|
|
214
|
+
/**
|
|
215
|
+
* Whether zone redundancy is enabled (Premium SKU only)
|
|
216
|
+
* @default "Disabled"
|
|
217
|
+
*/
|
|
218
|
+
readonly zoneRedundancy?: string;
|
|
219
|
+
/**
|
|
220
|
+
* Whether to enable a dedicated data endpoint (Premium SKU only)
|
|
221
|
+
* @default false
|
|
222
|
+
*/
|
|
223
|
+
readonly dataEndpointEnabled?: boolean;
|
|
224
|
+
/**
|
|
225
|
+
* Whether anonymous pull is enabled (Standard or Premium SKU)
|
|
226
|
+
* @default false
|
|
227
|
+
*/
|
|
228
|
+
readonly anonymousPullEnabled?: boolean;
|
|
229
|
+
/**
|
|
230
|
+
* Whether to allow trusted Azure Services to bypass network rules
|
|
231
|
+
* @default "AzureServices"
|
|
232
|
+
*/
|
|
233
|
+
readonly networkRuleBypassOptions?: string;
|
|
234
|
+
/**
|
|
235
|
+
* The lifecycle rules to ignore changes
|
|
236
|
+
* @example ["tags"]
|
|
237
|
+
*/
|
|
238
|
+
readonly ignoreChanges?: string[];
|
|
239
|
+
/**
|
|
240
|
+
* Resource group ID where the Container Registry will be created
|
|
241
|
+
*/
|
|
242
|
+
readonly resourceGroupId?: string;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Unified Azure Container Registry implementation
|
|
246
|
+
*
|
|
247
|
+
* This class provides a single, version-aware implementation that replaces all
|
|
248
|
+
* version-specific Container Registry classes. It automatically handles version
|
|
249
|
+
* resolution, schema validation, and property transformation while maintaining
|
|
250
|
+
* full backward compatibility.
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* // Basic usage with automatic version resolution:
|
|
254
|
+
* const registry = new ContainerRegistry(this, "acr", {
|
|
255
|
+
* name: "mycontainerregistry",
|
|
256
|
+
* location: "eastus",
|
|
257
|
+
* resourceGroupId: resourceGroup.id,
|
|
258
|
+
* sku: { name: "Standard" },
|
|
259
|
+
* });
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* // Premium registry with advanced features:
|
|
263
|
+
* const registry = new ContainerRegistry(this, "acr", {
|
|
264
|
+
* name: "mycontainerregistry",
|
|
265
|
+
* location: "eastus",
|
|
266
|
+
* resourceGroupId: resourceGroup.id,
|
|
267
|
+
* sku: { name: "Premium" },
|
|
268
|
+
* publicNetworkAccess: "Disabled",
|
|
269
|
+
* zoneRedundancy: "Enabled",
|
|
270
|
+
* dataEndpointEnabled: true,
|
|
271
|
+
* policies: {
|
|
272
|
+
* retentionPolicy: { days: 30, status: "enabled" },
|
|
273
|
+
* softDeletePolicy: { retentionDays: 14, status: "enabled" },
|
|
274
|
+
* },
|
|
275
|
+
* });
|
|
276
|
+
*
|
|
277
|
+
* @stability stable
|
|
278
|
+
*/
|
|
279
|
+
export declare class ContainerRegistry extends AzapiResource {
|
|
280
|
+
readonly props: ContainerRegistryProps;
|
|
281
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
282
|
+
readonly locationOutput: cdktn.TerraformOutput;
|
|
283
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
284
|
+
readonly tagsOutput: cdktn.TerraformOutput;
|
|
285
|
+
readonly loginServerOutput: cdktn.TerraformOutput;
|
|
286
|
+
/**
|
|
287
|
+
* Creates a new Azure Container Registry using the VersionedAzapiResource framework
|
|
288
|
+
*
|
|
289
|
+
* @param scope - The scope in which to define this construct
|
|
290
|
+
* @param id - The unique identifier for this instance
|
|
291
|
+
* @param props - Configuration properties for the Container Registry
|
|
292
|
+
*/
|
|
293
|
+
constructor(scope: Construct, id: string, props: ContainerRegistryProps);
|
|
294
|
+
/**
|
|
295
|
+
* Gets the default API version to use when no explicit version is specified
|
|
296
|
+
*/
|
|
297
|
+
protected defaultVersion(): string;
|
|
298
|
+
/**
|
|
299
|
+
* Gets the Azure resource type for Container Registries
|
|
300
|
+
*/
|
|
301
|
+
protected resourceType(): string;
|
|
302
|
+
/**
|
|
303
|
+
* Gets the API schema for the resolved version
|
|
304
|
+
*/
|
|
305
|
+
protected apiSchema(): ApiSchema;
|
|
306
|
+
/**
|
|
307
|
+
* Indicates that location is required for Container Registries
|
|
308
|
+
*/
|
|
309
|
+
protected requiresLocation(): boolean;
|
|
310
|
+
/**
|
|
311
|
+
* Creates the resource body for the Azure API call
|
|
312
|
+
*/
|
|
313
|
+
protected createResourceBody(props: any): any;
|
|
314
|
+
/**
|
|
315
|
+
* Get the login server URL for the Container Registry
|
|
316
|
+
*/
|
|
317
|
+
get loginServer(): string;
|
|
318
|
+
/**
|
|
319
|
+
* Add a tag to the Container Registry
|
|
320
|
+
*/
|
|
321
|
+
addTag(key: string, value: string): void;
|
|
322
|
+
/**
|
|
323
|
+
* Remove a tag from the Container Registry
|
|
324
|
+
*/
|
|
325
|
+
removeTag(key: string): void;
|
|
326
|
+
/**
|
|
327
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
328
|
+
*/
|
|
329
|
+
private _applyIgnoreChanges;
|
|
330
|
+
}
|