@microsoft/terraform-cdk-constructs 1.9.0 → 1.10.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 +55122 -31830
- package/API.md +74039 -46109
- 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/index.d.ts +1 -0
- package/lib/azure-containerapps/index.js +18 -0
- package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +50 -0
- package/lib/azure-containerapps/lib/container-app-environment-schemas.js +522 -0
- package/lib/azure-containerapps/lib/container-app-environment.d.ts +374 -0
- package/lib/azure-containerapps/lib/container-app-environment.js +310 -0
- package/lib/azure-containerapps/lib/container-app-schemas.d.ts +48 -0
- package/lib/azure-containerapps/lib/container-app-schemas.js +466 -0
- package/lib/azure-containerapps/lib/container-app.d.ts +925 -0
- package/lib/azure-containerapps/lib/container-app.js +320 -0
- package/lib/azure-containerapps/lib/index.d.ts +4 -0
- package/lib/azure-containerapps/lib/index.js +21 -0
- package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +10 -0
- package/lib/azure-containerapps/test/container-app-environment.integ.js +82 -0
- package/lib/azure-containerapps/test/container-app-environment.spec.d.ts +9 -0
- package/lib/azure-containerapps/test/container-app-environment.spec.js +412 -0
- package/lib/azure-containerapps/test/container-app.integ.d.ts +10 -0
- package/lib/azure-containerapps/test/container-app.integ.js +119 -0
- package/lib/azure-containerapps/test/container-app.spec.d.ts +9 -0
- package/lib/azure-containerapps/test/container-app.spec.js +839 -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-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-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-subnet/lib/subnet.js +1 -1
- package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
- package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
- package/lib/azure-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.js +1 -1
- package/lib/core-azure/lib/azapi/azapi-resource.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
- package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
- package/lib/index.d.ts +16 -0
- package/lib/index.js +18 -2
- package/lib/testing/index.js +2 -2
- package/lib/testing/lib/cleanup.js +1 -1
- package/lib/testing/lib/metadata.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtc3RhdGljd2ViYXBwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
|
|
@@ -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("./static-web-app-schemas"), exports);
|
|
18
|
+
__exportStar(require("./static-web-app"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtc3RhdGljd2ViYXBwL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXlDO0FBQ3pDLG1EQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3N0YXRpYy13ZWItYXBwLXNjaGVtYXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRpYy13ZWItYXBwXCI7XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API schemas for Azure Static Web App across all supported versions
|
|
3
|
+
*
|
|
4
|
+
* This file defines the complete API schemas for Microsoft.Web/staticSites
|
|
5
|
+
* across all supported API versions. The schemas are used by the AzapiResource
|
|
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 Static Web App version 2022-03-01
|
|
11
|
+
*/
|
|
12
|
+
export declare const STATIC_WEB_APP_SCHEMA_2022_03_01: ApiSchema;
|
|
13
|
+
/**
|
|
14
|
+
* API Schema for Static Web App version 2023-12-01
|
|
15
|
+
*/
|
|
16
|
+
export declare const STATIC_WEB_APP_SCHEMA_2023_12_01: ApiSchema;
|
|
17
|
+
/**
|
|
18
|
+
* API Schema for Static Web App version 2024-04-01
|
|
19
|
+
*/
|
|
20
|
+
export declare const STATIC_WEB_APP_SCHEMA_2024_04_01: ApiSchema;
|
|
21
|
+
/**
|
|
22
|
+
* Version configuration for Static Web App 2022-03-01
|
|
23
|
+
*/
|
|
24
|
+
export declare const STATIC_WEB_APP_VERSION_2022_03_01: VersionConfig;
|
|
25
|
+
/**
|
|
26
|
+
* Version configuration for Static Web App 2023-12-01
|
|
27
|
+
*/
|
|
28
|
+
export declare const STATIC_WEB_APP_VERSION_2023_12_01: VersionConfig;
|
|
29
|
+
/**
|
|
30
|
+
* Version configuration for Static Web App 2024-04-01
|
|
31
|
+
*/
|
|
32
|
+
export declare const STATIC_WEB_APP_VERSION_2024_04_01: VersionConfig;
|
|
33
|
+
/**
|
|
34
|
+
* All supported Static Web App versions for registration
|
|
35
|
+
*/
|
|
36
|
+
export declare const ALL_STATIC_WEB_APP_VERSIONS: VersionConfig[];
|
|
37
|
+
/**
|
|
38
|
+
* Resource type constant
|
|
39
|
+
*/
|
|
40
|
+
export declare const STATIC_WEB_APP_TYPE = "Microsoft.Web/staticSites";
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* API schemas for Azure Static Web App across all supported versions
|
|
4
|
+
*
|
|
5
|
+
* This file defines the complete API schemas for Microsoft.Web/staticSites
|
|
6
|
+
* across all supported API versions. The schemas are used by the AzapiResource
|
|
7
|
+
* framework for validation, transformation, and version management.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.STATIC_WEB_APP_TYPE = exports.ALL_STATIC_WEB_APP_VERSIONS = exports.STATIC_WEB_APP_VERSION_2024_04_01 = exports.STATIC_WEB_APP_VERSION_2023_12_01 = exports.STATIC_WEB_APP_VERSION_2022_03_01 = exports.STATIC_WEB_APP_SCHEMA_2024_04_01 = exports.STATIC_WEB_APP_SCHEMA_2023_12_01 = exports.STATIC_WEB_APP_SCHEMA_2022_03_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 Static Web App versions
|
|
17
|
+
*/
|
|
18
|
+
const COMMON_STATIC_WEB_APP_PROPERTIES = {
|
|
19
|
+
location: {
|
|
20
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
21
|
+
required: true,
|
|
22
|
+
description: "Azure region for the static web app. Static Web Apps are only available in a limited set of regions (e.g., centralus, eastus2, eastasia, westeurope, westus2)",
|
|
23
|
+
validation: [
|
|
24
|
+
{
|
|
25
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
26
|
+
message: "Location is required",
|
|
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
|
+
name: {
|
|
36
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
37
|
+
required: false,
|
|
38
|
+
description: "Name of the static web app",
|
|
39
|
+
validation: [
|
|
40
|
+
{
|
|
41
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
42
|
+
value: "^[a-zA-Z0-9][a-zA-Z0-9-]{0,58}[a-zA-Z0-9]$",
|
|
43
|
+
message: "Static Web App name must be 2-60 chars, alphanumeric and hyphens, starting and ending with alphanumeric",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
tags: {
|
|
48
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
49
|
+
required: false,
|
|
50
|
+
defaultValue: {},
|
|
51
|
+
description: "Resource tags",
|
|
52
|
+
},
|
|
53
|
+
sku: {
|
|
54
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
55
|
+
required: false,
|
|
56
|
+
description: "SKU of the static web app (Free or Standard)",
|
|
57
|
+
},
|
|
58
|
+
repositoryUrl: {
|
|
59
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
60
|
+
required: false,
|
|
61
|
+
description: "URL of the source code repository",
|
|
62
|
+
},
|
|
63
|
+
branch: {
|
|
64
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
65
|
+
required: false,
|
|
66
|
+
description: "Source code branch in the repository",
|
|
67
|
+
},
|
|
68
|
+
repositoryToken: {
|
|
69
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
70
|
+
required: false,
|
|
71
|
+
description: "Token used to authenticate against the repository (e.g., GitHub personal access token)",
|
|
72
|
+
},
|
|
73
|
+
buildProperties: {
|
|
74
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
75
|
+
required: false,
|
|
76
|
+
description: "Build configuration for the static web app",
|
|
77
|
+
},
|
|
78
|
+
stagingEnvironmentPolicy: {
|
|
79
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
80
|
+
required: false,
|
|
81
|
+
description: "State indicating whether staging environments are allowed (Enabled or Disabled)",
|
|
82
|
+
},
|
|
83
|
+
allowConfigFileUpdates: {
|
|
84
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
85
|
+
required: false,
|
|
86
|
+
description: "Whether configuration file updates are allowed via the Static Web App's deployment workflow",
|
|
87
|
+
},
|
|
88
|
+
ignoreChanges: {
|
|
89
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
90
|
+
required: false,
|
|
91
|
+
description: "Array of property names to ignore during updates",
|
|
92
|
+
validation: [
|
|
93
|
+
{
|
|
94
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
95
|
+
value: version_interfaces_1.PropertyType.ARRAY,
|
|
96
|
+
message: "IgnoreChanges must be an array of strings",
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
// =============================================================================
|
|
102
|
+
// VERSION-SPECIFIC SCHEMAS
|
|
103
|
+
// =============================================================================
|
|
104
|
+
const COMMON_OPTIONAL = [
|
|
105
|
+
"name",
|
|
106
|
+
"tags",
|
|
107
|
+
"sku",
|
|
108
|
+
"repositoryUrl",
|
|
109
|
+
"branch",
|
|
110
|
+
"repositoryToken",
|
|
111
|
+
"buildProperties",
|
|
112
|
+
"stagingEnvironmentPolicy",
|
|
113
|
+
"allowConfigFileUpdates",
|
|
114
|
+
"ignoreChanges",
|
|
115
|
+
];
|
|
116
|
+
/**
|
|
117
|
+
* API Schema for Static Web App version 2022-03-01
|
|
118
|
+
*/
|
|
119
|
+
exports.STATIC_WEB_APP_SCHEMA_2022_03_01 = {
|
|
120
|
+
resourceType: "Microsoft.Web/staticSites",
|
|
121
|
+
version: "2022-03-01",
|
|
122
|
+
properties: {
|
|
123
|
+
...COMMON_STATIC_WEB_APP_PROPERTIES,
|
|
124
|
+
},
|
|
125
|
+
required: ["location"],
|
|
126
|
+
optional: COMMON_OPTIONAL,
|
|
127
|
+
deprecated: [],
|
|
128
|
+
transformationRules: {},
|
|
129
|
+
validationRules: [],
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* API Schema for Static Web App version 2023-12-01
|
|
133
|
+
*/
|
|
134
|
+
exports.STATIC_WEB_APP_SCHEMA_2023_12_01 = {
|
|
135
|
+
resourceType: "Microsoft.Web/staticSites",
|
|
136
|
+
version: "2023-12-01",
|
|
137
|
+
properties: {
|
|
138
|
+
...COMMON_STATIC_WEB_APP_PROPERTIES,
|
|
139
|
+
},
|
|
140
|
+
required: ["location"],
|
|
141
|
+
optional: COMMON_OPTIONAL,
|
|
142
|
+
deprecated: [],
|
|
143
|
+
transformationRules: {},
|
|
144
|
+
validationRules: [],
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* API Schema for Static Web App version 2024-04-01
|
|
148
|
+
*/
|
|
149
|
+
exports.STATIC_WEB_APP_SCHEMA_2024_04_01 = {
|
|
150
|
+
resourceType: "Microsoft.Web/staticSites",
|
|
151
|
+
version: "2024-04-01",
|
|
152
|
+
properties: {
|
|
153
|
+
...COMMON_STATIC_WEB_APP_PROPERTIES,
|
|
154
|
+
},
|
|
155
|
+
required: ["location"],
|
|
156
|
+
optional: COMMON_OPTIONAL,
|
|
157
|
+
deprecated: [],
|
|
158
|
+
transformationRules: {},
|
|
159
|
+
validationRules: [],
|
|
160
|
+
};
|
|
161
|
+
// =============================================================================
|
|
162
|
+
// VERSION CONFIGURATIONS
|
|
163
|
+
// =============================================================================
|
|
164
|
+
/**
|
|
165
|
+
* Version configuration for Static Web App 2022-03-01
|
|
166
|
+
*/
|
|
167
|
+
exports.STATIC_WEB_APP_VERSION_2022_03_01 = {
|
|
168
|
+
version: "2022-03-01",
|
|
169
|
+
schema: exports.STATIC_WEB_APP_SCHEMA_2022_03_01,
|
|
170
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
171
|
+
releaseDate: "2022-03-01",
|
|
172
|
+
deprecationDate: undefined,
|
|
173
|
+
sunsetDate: undefined,
|
|
174
|
+
breakingChanges: [],
|
|
175
|
+
migrationGuide: "/docs/static-web-app/migration-2022-03-01",
|
|
176
|
+
changeLog: [
|
|
177
|
+
{
|
|
178
|
+
changeType: "added",
|
|
179
|
+
description: "Stable Static Web Apps release",
|
|
180
|
+
breaking: false,
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Version configuration for Static Web App 2023-12-01
|
|
186
|
+
*/
|
|
187
|
+
exports.STATIC_WEB_APP_VERSION_2023_12_01 = {
|
|
188
|
+
version: "2023-12-01",
|
|
189
|
+
schema: exports.STATIC_WEB_APP_SCHEMA_2023_12_01,
|
|
190
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
191
|
+
releaseDate: "2023-12-01",
|
|
192
|
+
deprecationDate: undefined,
|
|
193
|
+
sunsetDate: undefined,
|
|
194
|
+
breakingChanges: [],
|
|
195
|
+
migrationGuide: "/docs/static-web-app/migration-2023-12-01",
|
|
196
|
+
changeLog: [
|
|
197
|
+
{
|
|
198
|
+
changeType: "updated",
|
|
199
|
+
description: "Performance and reliability improvements",
|
|
200
|
+
breaking: false,
|
|
201
|
+
},
|
|
202
|
+
],
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Version configuration for Static Web App 2024-04-01
|
|
206
|
+
*/
|
|
207
|
+
exports.STATIC_WEB_APP_VERSION_2024_04_01 = {
|
|
208
|
+
version: "2024-04-01",
|
|
209
|
+
schema: exports.STATIC_WEB_APP_SCHEMA_2024_04_01,
|
|
210
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
211
|
+
releaseDate: "2024-04-01",
|
|
212
|
+
deprecationDate: undefined,
|
|
213
|
+
sunsetDate: undefined,
|
|
214
|
+
breakingChanges: [],
|
|
215
|
+
migrationGuide: "/docs/static-web-app/migration-2024-04-01",
|
|
216
|
+
changeLog: [
|
|
217
|
+
{
|
|
218
|
+
changeType: "updated",
|
|
219
|
+
description: "Latest stable Static Web Apps API",
|
|
220
|
+
breaking: false,
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
};
|
|
224
|
+
/**
|
|
225
|
+
* All supported Static Web App versions for registration
|
|
226
|
+
*/
|
|
227
|
+
exports.ALL_STATIC_WEB_APP_VERSIONS = [
|
|
228
|
+
exports.STATIC_WEB_APP_VERSION_2022_03_01,
|
|
229
|
+
exports.STATIC_WEB_APP_VERSION_2023_12_01,
|
|
230
|
+
exports.STATIC_WEB_APP_VERSION_2024_04_01,
|
|
231
|
+
];
|
|
232
|
+
/**
|
|
233
|
+
* Resource type constant
|
|
234
|
+
*/
|
|
235
|
+
exports.STATIC_WEB_APP_TYPE = "Microsoft.Web/staticSites";
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXdlYi1hcHAtc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1zdGF0aWN3ZWJhcHAvbGliL3N0YXRpYy13ZWItYXBwLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsMkdBTzRFO0FBRTVFLGdGQUFnRjtBQUNoRiw4QkFBOEI7QUFDOUIsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBTSxnQ0FBZ0MsR0FFbEM7SUFDRixRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUNULCtKQUErSjtRQUNqSyxVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtnQkFDckMsT0FBTyxFQUFFLHNCQUFzQjthQUNoQztZQUNEO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxhQUFhO2dCQUMxQyxLQUFLLEVBQUUsYUFBYTtnQkFDcEIsT0FBTyxFQUFFLDBEQUEwRDthQUNwRTtTQUNGO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLDRCQUE0QjtRQUN6QyxVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsYUFBYTtnQkFDMUMsS0FBSyxFQUFFLDRDQUE0QztnQkFDbkQsT0FBTyxFQUNMLHlHQUF5RzthQUM1RztTQUNGO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsWUFBWSxFQUFFLEVBQUU7UUFDaEIsV0FBVyxFQUFFLGVBQWU7S0FDN0I7SUFDRCxHQUFHLEVBQUU7UUFDSCxRQUFRLEVBQUUsaUNBQVksQ0FB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QVUsRUFBRSxTQUFTO1lBQ3JCLFdBQVcsRUFBRSxtQ0FBbUM7WUFDaEQsUUFBUSxFQUFFLEtBQUs7U0FDaEI7S0FDRjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsMkJBQTJCLEdBQW9CO0lBQzFELHlDQUFpQztJQUNqQyx5Q0FBaUM7SUFDakMseUNBQWlDO0NBQ2xDLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFQSSBzY2hlbWFzIGZvciBBenVyZSBTdGF0aWMgV2ViIEFwcCBhY3Jvc3MgYWxsIHN1cHBvcnRlZCB2ZXJzaW9uc1xuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBjb21wbGV0ZSBBUEkgc2NoZW1hcyBmb3IgTWljcm9zb2Z0LldlYi9zdGF0aWNTaXRlc1xuICogYWNyb3NzIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zLiBUaGUgc2NoZW1hcyBhcmUgdXNlZCBieSB0aGUgQXphcGlSZXNvdXJjZVxuICogZnJhbWV3b3JrIGZvciB2YWxpZGF0aW9uLCB0cmFuc2Zvcm1hdGlvbiwgYW5kIHZlcnNpb24gbWFuYWdlbWVudC5cbiAqL1xuXG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTU1PTiBQUk9QRVJUWSBERUZJTklUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydHkgZGVmaW5pdGlvbnMgc2hhcmVkIGFjcm9zcyBhbGwgU3RhdGljIFdlYiBBcHAgdmVyc2lvbnNcbiAqL1xuY29uc3QgQ09NTU9OX1NUQVRJQ19XRUJfQVBQX1BST1BFUlRJRVM6IHtcbiAgW2tleTogc3RyaW5nXTogUHJvcGVydHlEZWZpbml0aW9uO1xufSA9IHtcbiAgbG9jYXRpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiQXp1cmUgcmVnaW9uIGZvciB0aGUgc3RhdGljIHdlYiBhcHAuIFN0YXRpYyBXZWIgQXBwcyBhcmUgb25seSBhdmFpbGFibGUgaW4gYSBsaW1pdGVkIHNldCBvZiByZWdpb25zIChlLmcuLCBjZW50cmFsdXMsIGVhc3R1czIsIGVhc3Rhc2lhLCB3ZXN0ZXVyb3BlLCB3ZXN0dXMyKVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeW2EtejAtOV0rJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIG11c3QgY29udGFpbiBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzIGFuZCBudW1iZXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiTmFtZSBvZiB0aGUgc3RhdGljIHdlYiBhcHBcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXpBLVowLTldW2EtekEtWjAtOS1dezAsNTh9W2EtekEtWjAtOV0kXCIsXG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgXCJTdGF0aWMgV2ViIEFwcCBuYW1lIG11c3QgYmUgMi02MCBjaGFycywgYWxwaGFudW1lcmljIGFuZCBoeXBoZW5zLCBzdGFydGluZyBhbmQgZW5kaW5nIHdpdGggYWxwaGFudW1lcmljXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRhZ3M6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiB7fSxcbiAgICBkZXNjcmlwdGlvbjogXCJSZXNvdXJjZSB0YWdzXCIsXG4gIH0sXG4gIHNrdToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJTS1Ugb2YgdGhlIHN0YXRpYyB3ZWIgYXBwIChGcmVlIG9yIFN0YW5kYXJkKVwiLFxuICB9LFxuICByZXBvc2l0b3J5VXJsOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlVSTCBvZiB0aGUgc291cmNlIGNvZGUgcmVwb3NpdG9yeVwiLFxuICB9LFxuICBicmFuY2g6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiU291cmNlIGNvZGUgYnJhbmNoIGluIHRoZSByZXBvc2l0b3J5XCIsXG4gIH0sXG4gIHJlcG9zaXRvcnlUb2tlbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVG9rZW4gdXNlZCB0byBhdXRoZW50aWNhdGUgYWdhaW5zdCB0aGUgcmVwb3NpdG9yeSAoZS5nLiwgR2l0SHViIHBlcnNvbmFsIGFjY2VzcyB0b2tlbilcIixcbiAgfSxcbiAgYnVpbGRQcm9wZXJ0aWVzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkJ1aWxkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzdGF0aWMgd2ViIGFwcFwiLFxuICB9LFxuICBzdGFnaW5nRW52aXJvbm1lbnRQb2xpY3k6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlN0YXRlIGluZGljYXRpbmcgd2hldGhlciBzdGFnaW5nIGVudmlyb25tZW50cyBhcmUgYWxsb3dlZCAoRW5hYmxlZCBvciBEaXNhYmxlZClcIixcbiAgfSxcbiAgYWxsb3dDb25maWdGaWxlVXBkYXRlczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIldoZXRoZXIgY29uZmlndXJhdGlvbiBmaWxlIHVwZGF0ZXMgYXJlIGFsbG93ZWQgdmlhIHRoZSBTdGF0aWMgV2ViIEFwcCdzIGRlcGxveW1lbnQgd29ya2Zsb3dcIixcbiAgfSxcbiAgaWdub3JlQ2hhbmdlczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkFycmF5IG9mIHByb3BlcnR5IG5hbWVzIHRvIGlnbm9yZSBkdXJpbmcgdXBkYXRlc1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgICAgICBtZXNzYWdlOiBcIklnbm9yZUNoYW5nZXMgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTi1TUEVDSUZJQyBTQ0hFTUFTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBDT01NT05fT1BUSU9OQUwgPSBbXG4gIFwibmFtZVwiLFxuICBcInRhZ3NcIixcbiAgXCJza3VcIixcbiAgXCJyZXBvc2l0b3J5VXJsXCIsXG4gIFwiYnJhbmNoXCIsXG4gIFwicmVwb3NpdG9yeVRva2VuXCIsXG4gIFwiYnVpbGRQcm9wZXJ0aWVzXCIsXG4gIFwic3RhZ2luZ0Vudmlyb25tZW50UG9saWN5XCIsXG4gIFwiYWxsb3dDb25maWdGaWxlVXBkYXRlc1wiLFxuICBcImlnbm9yZUNoYW5nZXNcIixcbl07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgU3RhdGljIFdlYiBBcHAgdmVyc2lvbiAyMDIyLTAzLTAxXG4gKi9cbmV4cG9ydCBjb25zdCBTVEFUSUNfV0VCX0FQUF9TQ0hFTUFfMjAyMl8wM18wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LldlYi9zdGF0aWNTaXRlc1wiLFxuICB2ZXJzaW9uOiBcIjIwMjItMDMtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9TVEFUSUNfV0VCX0FQUF9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIl0sXG4gIG9wdGlvbmFsOiBDT01NT05fT1BUSU9OQUwsXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgU3RhdGljIFdlYiBBcHAgdmVyc2lvbiAyMDIzLTEyLTAxXG4gKi9cbmV4cG9ydCBjb25zdCBTVEFUSUNfV0VCX0FQUF9TQ0hFTUFfMjAyM18xMl8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LldlYi9zdGF0aWNTaXRlc1wiLFxuICB2ZXJzaW9uOiBcIjIwMjMtMTItMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9TVEFUSUNfV0VCX0FQUF9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIl0sXG4gIG9wdGlvbmFsOiBDT01NT05fT1BUSU9OQUwsXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgU3RhdGljIFdlYiBBcHAgdmVyc2lvbiAyMDI0LTA0LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBTVEFUSUNfV0VCX0FQUF9TQ0hFTUFfMjAyNF8wNF8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LldlYi9zdGF0aWNTaXRlc1wiLFxuICB2ZXJzaW9uOiBcIjIwMjQtMDQtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9TVEFUSUNfV0VCX0FQUF9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIl0sXG4gIG9wdGlvbmFsOiBDT01NT05fT1BUSU9OQUwsXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OIENPTkZJR1VSQVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgU3RhdGljIFdlYiBBcHAgMjAyMi0wMy0wMVxuICovXG5leHBvcnQgY29uc3QgU1RBVElDX1dFQl9BUFBfVkVSU0lPTl8yMDIyXzAzXzAxOiBWZXJzaW9uQ29uZmlnID0ge1xuICB2ZXJzaW9uOiBcIjIwMjItMDMtMDFcIixcbiAgc2NoZW1hOiBTVEFUSUNfV0VCX0FQUF9TQ0hFTUFfMjAyMl8wM18wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyMi0wMy0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy9zdGF0aWMtd2ViLWFwcC9taWdyYXRpb24tMjAyMi0wMy0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcImFkZGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTdGFibGUgU3RhdGljIFdlYiBBcHBzIHJlbGVhc2VcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFN0YXRpYyBXZWIgQXBwIDIwMjMtMTItMDFcbiAqL1xuZXhwb3J0IGNvbnN0IFNUQVRJQ19XRUJfQVBQX1ZFUlNJT05fMjAyM18xMl8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDIzLTEyLTAxXCIsXG4gIHNjaGVtYTogU1RBVElDX1dFQl9BUFBfU0NIRU1BXzIwMjNfMTJfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjMtMTItMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3Mvc3RhdGljLXdlYi1hcHAvbWlncmF0aW9uLTIwMjMtMTItMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJ1cGRhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJQZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgaW1wcm92ZW1lbnRzXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBTdGF0aWMgV2ViIEFwcCAyMDI0LTA0LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBTVEFUSUNfV0VCX0FQUF9WRVJTSU9OXzIwMjRfMDRfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNC0wNC0wMVwiLFxuICBzY2hlbWE6IFNUQVRJQ19XRUJfQVBQX1NDSEVNQV8yMDI0XzA0XzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDI0LTA0LTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL3N0YXRpYy13ZWItYXBwL21pZ3JhdGlvbi0yMDI0LTA0LTAxXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwidXBkYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTGF0ZXN0IHN0YWJsZSBTdGF0aWMgV2ViIEFwcHMgQVBJXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBTdGF0aWMgV2ViIEFwcCB2ZXJzaW9ucyBmb3IgcmVnaXN0cmF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBBTExfU1RBVElDX1dFQl9BUFBfVkVSU0lPTlM6IFZlcnNpb25Db25maWdbXSA9IFtcbiAgU1RBVElDX1dFQl9BUFBfVkVSU0lPTl8yMDIyXzAzXzAxLFxuICBTVEFUSUNfV0VCX0FQUF9WRVJTSU9OXzIwMjNfMTJfMDEsXG4gIFNUQVRJQ19XRUJfQVBQX1ZFUlNJT05fMjAyNF8wNF8wMSxcbl07XG5cbi8qKlxuICogUmVzb3VyY2UgdHlwZSBjb25zdGFudFxuICovXG5leHBvcnQgY29uc3QgU1RBVElDX1dFQl9BUFBfVFlQRSA9IFwiTWljcm9zb2Z0LldlYi9zdGF0aWNTaXRlc1wiO1xuIl19
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Azure Static Web App implementation using AzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This class provides a unified implementation for Azure Static Web Apps that
|
|
5
|
+
* automatically handles version management, schema validation, and property
|
|
6
|
+
* transformation across all supported API versions.
|
|
7
|
+
*
|
|
8
|
+
* Supported API Versions:
|
|
9
|
+
* - 2022-03-01 (Active)
|
|
10
|
+
* - 2023-12-01 (Active)
|
|
11
|
+
* - 2024-04-01 (Active, Latest)
|
|
12
|
+
*
|
|
13
|
+
* Features:
|
|
14
|
+
* - Automatic latest version resolution when no version is specified
|
|
15
|
+
* - Explicit version pinning for stability requirements
|
|
16
|
+
* - Schema-driven validation and transformation
|
|
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
|
+
* SKU configuration for Static Web App
|
|
25
|
+
*/
|
|
26
|
+
export interface StaticWebAppSku {
|
|
27
|
+
/**
|
|
28
|
+
* Name of the SKU
|
|
29
|
+
* @example "Free", "Standard"
|
|
30
|
+
*/
|
|
31
|
+
readonly name: string;
|
|
32
|
+
/**
|
|
33
|
+
* Tier of the SKU
|
|
34
|
+
* @example "Free", "Standard"
|
|
35
|
+
*/
|
|
36
|
+
readonly tier?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build configuration for the Static Web App
|
|
40
|
+
*
|
|
41
|
+
* These properties drive the build pipeline that the Static Web App
|
|
42
|
+
* uses when integrated with a source control repository.
|
|
43
|
+
*/
|
|
44
|
+
export interface StaticWebAppBuildProperties {
|
|
45
|
+
/**
|
|
46
|
+
* The path to the app code within the repository
|
|
47
|
+
* @example "/", "src"
|
|
48
|
+
*/
|
|
49
|
+
readonly appLocation?: string;
|
|
50
|
+
/**
|
|
51
|
+
* The path to the Azure Functions API code within the repository
|
|
52
|
+
* @example "api"
|
|
53
|
+
*/
|
|
54
|
+
readonly apiLocation?: string;
|
|
55
|
+
/**
|
|
56
|
+
* The path of the build output relative to the app location
|
|
57
|
+
* @example "build", "dist"
|
|
58
|
+
*/
|
|
59
|
+
readonly outputLocation?: string;
|
|
60
|
+
/**
|
|
61
|
+
* A custom command to run during deployment of the static content application
|
|
62
|
+
*/
|
|
63
|
+
readonly appBuildCommand?: string;
|
|
64
|
+
/**
|
|
65
|
+
* A custom command to run during deployment of the Azure Functions API application
|
|
66
|
+
*/
|
|
67
|
+
readonly apiBuildCommand?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Skip Github Action workflow generation
|
|
70
|
+
*/
|
|
71
|
+
readonly skipGithubActionWorkflowGeneration?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* GitHub Action secret name override
|
|
74
|
+
*/
|
|
75
|
+
readonly githubActionSecretNameOverride?: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Properties for the Azure Static Web App
|
|
79
|
+
*
|
|
80
|
+
* Extends AzapiResourceProps with Static Web App specific properties
|
|
81
|
+
*/
|
|
82
|
+
export interface StaticWebAppProps extends AzapiResourceProps {
|
|
83
|
+
/**
|
|
84
|
+
* SKU of the static web app
|
|
85
|
+
* @defaultValue { name: "Free", tier: "Free" }
|
|
86
|
+
*/
|
|
87
|
+
readonly sku?: StaticWebAppSku;
|
|
88
|
+
/**
|
|
89
|
+
* URL of the source code repository
|
|
90
|
+
* Optional - if not provided, the Static Web App is created without source control integration
|
|
91
|
+
* @example "https://github.com/my-org/my-repo"
|
|
92
|
+
*/
|
|
93
|
+
readonly repositoryUrl?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Source code branch in the repository
|
|
96
|
+
* @example "main"
|
|
97
|
+
*/
|
|
98
|
+
readonly branch?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Token used to authenticate against the repository
|
|
101
|
+
* For GitHub, this is a personal access token with `repo` scope
|
|
102
|
+
*
|
|
103
|
+
* @remarks
|
|
104
|
+
* Treat this value as a secret. Prefer passing it via Terraform variables
|
|
105
|
+
* or environment variables rather than hard-coding it.
|
|
106
|
+
*/
|
|
107
|
+
readonly repositoryToken?: string;
|
|
108
|
+
/**
|
|
109
|
+
* Build configuration for the static web app
|
|
110
|
+
*/
|
|
111
|
+
readonly buildProperties?: StaticWebAppBuildProperties;
|
|
112
|
+
/**
|
|
113
|
+
* Whether staging environments are allowed
|
|
114
|
+
* @example "Enabled", "Disabled"
|
|
115
|
+
* @defaultValue "Enabled"
|
|
116
|
+
*/
|
|
117
|
+
readonly stagingEnvironmentPolicy?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Whether configuration file updates are allowed
|
|
120
|
+
* @defaultValue true
|
|
121
|
+
*/
|
|
122
|
+
readonly allowConfigFileUpdates?: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Resource group ID where the Static Web App will be created
|
|
125
|
+
* Optional - will use the subscription scope if not provided
|
|
126
|
+
*/
|
|
127
|
+
readonly resourceGroupId?: string;
|
|
128
|
+
/**
|
|
129
|
+
* The lifecycle rules to ignore changes
|
|
130
|
+
* Useful for properties that are externally managed
|
|
131
|
+
*
|
|
132
|
+
* @example ["tags", "body.properties.repositoryToken"]
|
|
133
|
+
*/
|
|
134
|
+
readonly ignoreChanges?: string[];
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Azure Static Web App
|
|
138
|
+
*
|
|
139
|
+
* This class provides a single, version-aware implementation for the
|
|
140
|
+
* `Microsoft.Web/staticSites` Azure resource type. It automatically handles
|
|
141
|
+
* version resolution, schema validation, and property transformation while
|
|
142
|
+
* exposing the most commonly used Static Web App configuration options.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* // Basic Free-tier Static Web App without source control integration:
|
|
146
|
+
* const swa = new StaticWebApp(this, "swa", {
|
|
147
|
+
* name: "my-static-web-app",
|
|
148
|
+
* location: "eastus2",
|
|
149
|
+
* resourceGroupId: resourceGroup.id,
|
|
150
|
+
* });
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* // Standard Static Web App with GitHub integration:
|
|
154
|
+
* const swa = new StaticWebApp(this, "swa", {
|
|
155
|
+
* name: "my-static-web-app",
|
|
156
|
+
* location: "eastus2",
|
|
157
|
+
* resourceGroupId: resourceGroup.id,
|
|
158
|
+
* sku: {
|
|
159
|
+
* name: "Standard",
|
|
160
|
+
* tier: "Standard",
|
|
161
|
+
* },
|
|
162
|
+
* repositoryUrl: "https://github.com/my-org/my-repo",
|
|
163
|
+
* branch: "main",
|
|
164
|
+
* buildProperties: {
|
|
165
|
+
* appLocation: "/",
|
|
166
|
+
* apiLocation: "api",
|
|
167
|
+
* outputLocation: "dist",
|
|
168
|
+
* },
|
|
169
|
+
* });
|
|
170
|
+
*
|
|
171
|
+
* @stability stable
|
|
172
|
+
*/
|
|
173
|
+
export declare class StaticWebApp extends AzapiResource {
|
|
174
|
+
/**
|
|
175
|
+
* The input properties for this Static Web App instance
|
|
176
|
+
*/
|
|
177
|
+
readonly props: StaticWebAppProps;
|
|
178
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
179
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
180
|
+
readonly locationOutput: cdktf.TerraformOutput;
|
|
181
|
+
readonly tagsOutput: cdktf.TerraformOutput;
|
|
182
|
+
readonly defaultHostnameOutput: cdktf.TerraformOutput;
|
|
183
|
+
/**
|
|
184
|
+
* Creates a new Azure Static Web App using the AzapiResource framework
|
|
185
|
+
*
|
|
186
|
+
* @param scope - The scope in which to define this construct
|
|
187
|
+
* @param id - The unique identifier for this instance
|
|
188
|
+
* @param props - Configuration properties for the Static Web App
|
|
189
|
+
*/
|
|
190
|
+
constructor(scope: Construct, id: string, props: StaticWebAppProps);
|
|
191
|
+
/**
|
|
192
|
+
* Gets the default API version to use when no explicit version is specified
|
|
193
|
+
*/
|
|
194
|
+
protected defaultVersion(): string;
|
|
195
|
+
/**
|
|
196
|
+
* Gets the Azure resource type for Static Web Apps
|
|
197
|
+
*/
|
|
198
|
+
protected resourceType(): string;
|
|
199
|
+
/**
|
|
200
|
+
* Gets the API schema for the resolved version
|
|
201
|
+
*/
|
|
202
|
+
protected apiSchema(): ApiSchema;
|
|
203
|
+
/**
|
|
204
|
+
* Indicates that location is required for Static Web Apps
|
|
205
|
+
*/
|
|
206
|
+
protected requiresLocation(): boolean;
|
|
207
|
+
/**
|
|
208
|
+
* Creates the resource body for the Azure API call
|
|
209
|
+
* Transforms the input properties into the JSON format expected by the
|
|
210
|
+
* `Microsoft.Web/staticSites` Azure REST API.
|
|
211
|
+
*/
|
|
212
|
+
protected createResourceBody(props: any): any;
|
|
213
|
+
/**
|
|
214
|
+
* Get the subscription ID from the Static Web App ID
|
|
215
|
+
* Extracts the subscription ID from the Azure resource ID format
|
|
216
|
+
*/
|
|
217
|
+
get subscriptionId(): string;
|
|
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 default hostname of the Static Web App
|
|
225
|
+
* Returns the Terraform interpolation string for the default hostname
|
|
226
|
+
*/
|
|
227
|
+
get defaultHostname(): string;
|
|
228
|
+
/**
|
|
229
|
+
* Add a tag to the Static Web App
|
|
230
|
+
* Note: This modifies the construct props but requires a new deployment to take effect
|
|
231
|
+
*/
|
|
232
|
+
addTag(key: string, value: string): void;
|
|
233
|
+
/**
|
|
234
|
+
* Remove a tag from the Static Web App
|
|
235
|
+
* Note: This modifies the construct props but requires a new deployment to take effect
|
|
236
|
+
*/
|
|
237
|
+
removeTag(key: string): void;
|
|
238
|
+
/**
|
|
239
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
240
|
+
*/
|
|
241
|
+
private _applyIgnoreChanges;
|
|
242
|
+
}
|