@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.
Files changed (165) hide show
  1. package/.jsii +55122 -31830
  2. package/API.md +74039 -46109
  3. package/lib/azure-actiongroup/lib/action-group.js +1 -1
  4. package/lib/azure-activitylogalert/lib/activity-log-alert.js +1 -1
  5. package/lib/azure-aks/lib/aks-cluster.js +1 -1
  6. package/lib/azure-applicationinsights/index.d.ts +7 -0
  7. package/lib/azure-applicationinsights/index.js +24 -0
  8. package/lib/azure-applicationinsights/lib/application-insights-schemas.d.ts +29 -0
  9. package/lib/azure-applicationinsights/lib/application-insights-schemas.js +162 -0
  10. package/lib/azure-applicationinsights/lib/application-insights.d.ts +206 -0
  11. package/lib/azure-applicationinsights/lib/application-insights.js +209 -0
  12. package/lib/azure-applicationinsights/lib/index.d.ts +5 -0
  13. package/lib/azure-applicationinsights/lib/index.js +22 -0
  14. package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +9 -0
  15. package/lib/azure-applicationinsights/test/application-insights.integ.js +84 -0
  16. package/lib/azure-applicationinsights/test/application-insights.spec.d.ts +8 -0
  17. package/lib/azure-applicationinsights/test/application-insights.spec.js +209 -0
  18. package/lib/azure-containerapps/index.d.ts +1 -0
  19. package/lib/azure-containerapps/index.js +18 -0
  20. package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +50 -0
  21. package/lib/azure-containerapps/lib/container-app-environment-schemas.js +522 -0
  22. package/lib/azure-containerapps/lib/container-app-environment.d.ts +374 -0
  23. package/lib/azure-containerapps/lib/container-app-environment.js +310 -0
  24. package/lib/azure-containerapps/lib/container-app-schemas.d.ts +48 -0
  25. package/lib/azure-containerapps/lib/container-app-schemas.js +466 -0
  26. package/lib/azure-containerapps/lib/container-app.d.ts +925 -0
  27. package/lib/azure-containerapps/lib/container-app.js +320 -0
  28. package/lib/azure-containerapps/lib/index.d.ts +4 -0
  29. package/lib/azure-containerapps/lib/index.js +21 -0
  30. package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +10 -0
  31. package/lib/azure-containerapps/test/container-app-environment.integ.js +82 -0
  32. package/lib/azure-containerapps/test/container-app-environment.spec.d.ts +9 -0
  33. package/lib/azure-containerapps/test/container-app-environment.spec.js +412 -0
  34. package/lib/azure-containerapps/test/container-app.integ.d.ts +10 -0
  35. package/lib/azure-containerapps/test/container-app.integ.js +119 -0
  36. package/lib/azure-containerapps/test/container-app.spec.d.ts +9 -0
  37. package/lib/azure-containerapps/test/container-app.spec.js +839 -0
  38. package/lib/azure-containerregistry/index.d.ts +1 -0
  39. package/lib/azure-containerregistry/index.js +18 -0
  40. package/lib/azure-containerregistry/lib/container-registry-schemas.d.ts +32 -0
  41. package/lib/azure-containerregistry/lib/container-registry-schemas.js +316 -0
  42. package/lib/azure-containerregistry/lib/container-registry.d.ts +330 -0
  43. package/lib/azure-containerregistry/lib/container-registry.js +217 -0
  44. package/lib/azure-containerregistry/lib/index.d.ts +2 -0
  45. package/lib/azure-containerregistry/lib/index.js +19 -0
  46. package/lib/azure-containerregistry/test/container-registry.integ.d.ts +9 -0
  47. package/lib/azure-containerregistry/test/container-registry.integ.js +101 -0
  48. package/lib/azure-containerregistry/test/container-registry.spec.d.ts +4 -0
  49. package/lib/azure-containerregistry/test/container-registry.spec.js +425 -0
  50. package/lib/azure-cosmosdb/index.d.ts +1 -0
  51. package/lib/azure-cosmosdb/index.js +18 -0
  52. package/lib/azure-cosmosdb/lib/cosmos-db-schemas.d.ts +40 -0
  53. package/lib/azure-cosmosdb/lib/cosmos-db-schemas.js +330 -0
  54. package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +290 -0
  55. package/lib/azure-cosmosdb/lib/cosmos-db.js +222 -0
  56. package/lib/azure-cosmosdb/lib/index.d.ts +2 -0
  57. package/lib/azure-cosmosdb/lib/index.js +19 -0
  58. package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +9 -0
  59. package/lib/azure-cosmosdb/test/cosmos-db.integ.js +98 -0
  60. package/lib/azure-cosmosdb/test/cosmos-db.spec.d.ts +4 -0
  61. package/lib/azure-cosmosdb/test/cosmos-db.spec.js +339 -0
  62. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +1 -1
  63. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
  64. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
  65. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
  66. package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
  67. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
  68. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
  69. package/lib/azure-dnszone/lib/dns-zone.js +1 -1
  70. package/lib/azure-dnszone/lib/records/dns-records.js +10 -10
  71. package/lib/azure-functionapp/index.d.ts +1 -0
  72. package/lib/azure-functionapp/index.js +18 -0
  73. package/lib/azure-functionapp/lib/function-app-schemas.d.ts +32 -0
  74. package/lib/azure-functionapp/lib/function-app-schemas.js +303 -0
  75. package/lib/azure-functionapp/lib/function-app.d.ts +367 -0
  76. package/lib/azure-functionapp/lib/function-app.js +223 -0
  77. package/lib/azure-functionapp/lib/index.d.ts +2 -0
  78. package/lib/azure-functionapp/lib/index.js +19 -0
  79. package/lib/azure-functionapp/test/function-app.integ.d.ts +12 -0
  80. package/lib/azure-functionapp/test/function-app.integ.js +134 -0
  81. package/lib/azure-functionapp/test/function-app.spec.d.ts +4 -0
  82. package/lib/azure-functionapp/test/function-app.spec.js +566 -0
  83. package/lib/azure-keyvault/index.d.ts +1 -0
  84. package/lib/azure-keyvault/index.js +18 -0
  85. package/lib/azure-keyvault/lib/index.d.ts +2 -0
  86. package/lib/azure-keyvault/lib/index.js +19 -0
  87. package/lib/azure-keyvault/lib/key-vault-schemas.d.ts +40 -0
  88. package/lib/azure-keyvault/lib/key-vault-schemas.js +312 -0
  89. package/lib/azure-keyvault/lib/key-vault.d.ts +344 -0
  90. package/lib/azure-keyvault/lib/key-vault.js +243 -0
  91. package/lib/azure-keyvault/test/key-vault.integ.d.ts +9 -0
  92. package/lib/azure-keyvault/test/key-vault.integ.js +108 -0
  93. package/lib/azure-keyvault/test/key-vault.spec.d.ts +4 -0
  94. package/lib/azure-keyvault/test/key-vault.spec.js +264 -0
  95. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +1 -1
  96. package/lib/azure-metricalert/lib/metric-alert.js +1 -1
  97. package/lib/azure-networkinterface/lib/network-interface.js +1 -1
  98. package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
  99. package/lib/azure-networkwatcher/lib/network-watcher.js +1 -1
  100. package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
  101. package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
  102. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +1 -1
  103. package/lib/azure-privatednszone/lib/private-dns-zone.js +1 -1
  104. package/lib/azure-privatednszone/lib/records/private-dns-records.js +8 -8
  105. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
  106. package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
  107. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  108. package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
  109. package/lib/azure-roledefinition/lib/role-definition.js +1 -1
  110. package/lib/azure-sreagent/index.d.ts +1 -0
  111. package/lib/azure-sreagent/index.js +18 -0
  112. package/lib/azure-sreagent/lib/index.d.ts +2 -0
  113. package/lib/azure-sreagent/lib/index.js +19 -0
  114. package/lib/azure-sreagent/lib/sre-agent-schemas.d.ts +29 -0
  115. package/lib/azure-sreagent/lib/sre-agent-schemas.js +296 -0
  116. package/lib/azure-sreagent/lib/sre-agent.d.ts +208 -0
  117. package/lib/azure-sreagent/lib/sre-agent.js +217 -0
  118. package/lib/azure-sreagent/test/sre-agent.integ.d.ts +9 -0
  119. package/lib/azure-sreagent/test/sre-agent.integ.js +78 -0
  120. package/lib/azure-sreagent/test/sre-agent.spec.d.ts +4 -0
  121. package/lib/azure-sreagent/test/sre-agent.spec.js +216 -0
  122. package/lib/azure-staticwebapp/index.d.ts +1 -0
  123. package/lib/azure-staticwebapp/index.js +18 -0
  124. package/lib/azure-staticwebapp/lib/index.d.ts +2 -0
  125. package/lib/azure-staticwebapp/lib/index.js +19 -0
  126. package/lib/azure-staticwebapp/lib/static-web-app-schemas.d.ts +40 -0
  127. package/lib/azure-staticwebapp/lib/static-web-app-schemas.js +236 -0
  128. package/lib/azure-staticwebapp/lib/static-web-app.d.ts +242 -0
  129. package/lib/azure-staticwebapp/lib/static-web-app.js +232 -0
  130. package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +9 -0
  131. package/lib/azure-staticwebapp/test/static-web-app.integ.js +76 -0
  132. package/lib/azure-staticwebapp/test/static-web-app.spec.d.ts +15 -0
  133. package/lib/azure-staticwebapp/test/static-web-app.spec.js +293 -0
  134. package/lib/azure-storageaccount/lib/storage-account.js +1 -1
  135. package/lib/azure-subnet/lib/subnet.js +1 -1
  136. package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
  137. package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
  138. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +1 -1
  139. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
  140. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
  141. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
  142. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
  143. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
  144. package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
  145. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
  146. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
  147. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
  148. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
  149. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +1 -1
  150. package/lib/core-azure/lib/azapi/azapi-resource.js +2 -2
  151. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
  152. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
  153. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
  154. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
  155. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
  156. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
  157. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  158. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  159. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  160. package/lib/index.d.ts +16 -0
  161. package/lib/index.js +18 -2
  162. package/lib/testing/index.js +2 -2
  163. package/lib/testing/lib/cleanup.js +1 -1
  164. package/lib/testing/lib/metadata.js +1 -1
  165. package/package.json +1 -1
@@ -123,7 +123,7 @@ class DnsARecord extends azapi_resource_1.AzapiResource {
123
123
  }
124
124
  exports.DnsARecord = DnsARecord;
125
125
  _a = JSII_RTTI_SYMBOL_1;
126
- DnsARecord[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsARecord", version: "1.9.0" };
126
+ DnsARecord[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsARecord", version: "1.10.0" };
127
127
  (() => {
128
128
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_A_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_A_RECORD_VERSIONS);
129
129
  })();
@@ -212,7 +212,7 @@ class DnsAaaaRecord extends azapi_resource_1.AzapiResource {
212
212
  }
213
213
  exports.DnsAaaaRecord = DnsAaaaRecord;
214
214
  _b = JSII_RTTI_SYMBOL_1;
215
- DnsAaaaRecord[_b] = { fqn: "@microsoft/terraform-cdk-constructs.DnsAaaaRecord", version: "1.9.0" };
215
+ DnsAaaaRecord[_b] = { fqn: "@microsoft/terraform-cdk-constructs.DnsAaaaRecord", version: "1.10.0" };
216
216
  (() => {
217
217
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_AAAA_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_AAAA_RECORD_VERSIONS);
218
218
  })();
@@ -300,7 +300,7 @@ class DnsCaaRecord extends azapi_resource_1.AzapiResource {
300
300
  }
301
301
  exports.DnsCaaRecord = DnsCaaRecord;
302
302
  _c = JSII_RTTI_SYMBOL_1;
303
- DnsCaaRecord[_c] = { fqn: "@microsoft/terraform-cdk-constructs.DnsCaaRecord", version: "1.9.0" };
303
+ DnsCaaRecord[_c] = { fqn: "@microsoft/terraform-cdk-constructs.DnsCaaRecord", version: "1.10.0" };
304
304
  (() => {
305
305
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_CAA_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_CAA_RECORD_VERSIONS);
306
306
  })();
@@ -386,7 +386,7 @@ class DnsCnameRecord extends azapi_resource_1.AzapiResource {
386
386
  }
387
387
  exports.DnsCnameRecord = DnsCnameRecord;
388
388
  _d = JSII_RTTI_SYMBOL_1;
389
- DnsCnameRecord[_d] = { fqn: "@microsoft/terraform-cdk-constructs.DnsCnameRecord", version: "1.9.0" };
389
+ DnsCnameRecord[_d] = { fqn: "@microsoft/terraform-cdk-constructs.DnsCnameRecord", version: "1.10.0" };
390
390
  (() => {
391
391
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_CNAME_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_CNAME_RECORD_VERSIONS);
392
392
  })();
@@ -471,7 +471,7 @@ class DnsMxRecord extends azapi_resource_1.AzapiResource {
471
471
  }
472
472
  exports.DnsMxRecord = DnsMxRecord;
473
473
  _e = JSII_RTTI_SYMBOL_1;
474
- DnsMxRecord[_e] = { fqn: "@microsoft/terraform-cdk-constructs.DnsMxRecord", version: "1.9.0" };
474
+ DnsMxRecord[_e] = { fqn: "@microsoft/terraform-cdk-constructs.DnsMxRecord", version: "1.10.0" };
475
475
  (() => {
476
476
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_MX_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_MX_RECORD_VERSIONS);
477
477
  })();
@@ -556,7 +556,7 @@ class DnsNsRecord extends azapi_resource_1.AzapiResource {
556
556
  }
557
557
  exports.DnsNsRecord = DnsNsRecord;
558
558
  _f = JSII_RTTI_SYMBOL_1;
559
- DnsNsRecord[_f] = { fqn: "@microsoft/terraform-cdk-constructs.DnsNsRecord", version: "1.9.0" };
559
+ DnsNsRecord[_f] = { fqn: "@microsoft/terraform-cdk-constructs.DnsNsRecord", version: "1.10.0" };
560
560
  (() => {
561
561
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_NS_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_NS_RECORD_VERSIONS);
562
562
  })();
@@ -639,7 +639,7 @@ class DnsPtrRecord extends azapi_resource_1.AzapiResource {
639
639
  }
640
640
  exports.DnsPtrRecord = DnsPtrRecord;
641
641
  _g = JSII_RTTI_SYMBOL_1;
642
- DnsPtrRecord[_g] = { fqn: "@microsoft/terraform-cdk-constructs.DnsPtrRecord", version: "1.9.0" };
642
+ DnsPtrRecord[_g] = { fqn: "@microsoft/terraform-cdk-constructs.DnsPtrRecord", version: "1.10.0" };
643
643
  (() => {
644
644
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_PTR_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_PTR_RECORD_VERSIONS);
645
645
  })();
@@ -747,7 +747,7 @@ class DnsSoaRecord extends azapi_resource_1.AzapiResource {
747
747
  }
748
748
  exports.DnsSoaRecord = DnsSoaRecord;
749
749
  _h = JSII_RTTI_SYMBOL_1;
750
- DnsSoaRecord[_h] = { fqn: "@microsoft/terraform-cdk-constructs.DnsSoaRecord", version: "1.9.0" };
750
+ DnsSoaRecord[_h] = { fqn: "@microsoft/terraform-cdk-constructs.DnsSoaRecord", version: "1.10.0" };
751
751
  (() => {
752
752
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_SOA_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_SOA_RECORD_VERSIONS);
753
753
  })();
@@ -834,7 +834,7 @@ class DnsSrvRecord extends azapi_resource_1.AzapiResource {
834
834
  }
835
835
  exports.DnsSrvRecord = DnsSrvRecord;
836
836
  _j = JSII_RTTI_SYMBOL_1;
837
- DnsSrvRecord[_j] = { fqn: "@microsoft/terraform-cdk-constructs.DnsSrvRecord", version: "1.9.0" };
837
+ DnsSrvRecord[_j] = { fqn: "@microsoft/terraform-cdk-constructs.DnsSrvRecord", version: "1.10.0" };
838
838
  (() => {
839
839
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_SRV_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_SRV_RECORD_VERSIONS);
840
840
  })();
@@ -917,7 +917,7 @@ class DnsTxtRecord extends azapi_resource_1.AzapiResource {
917
917
  }
918
918
  exports.DnsTxtRecord = DnsTxtRecord;
919
919
  _k = JSII_RTTI_SYMBOL_1;
920
- DnsTxtRecord[_k] = { fqn: "@microsoft/terraform-cdk-constructs.DnsTxtRecord", version: "1.9.0" };
920
+ DnsTxtRecord[_k] = { fqn: "@microsoft/terraform-cdk-constructs.DnsTxtRecord", version: "1.10.0" };
921
921
  (() => {
922
922
  azapi_resource_1.AzapiResource.registerSchemas(dns_record_schemas_1.DNS_TXT_RECORD_TYPE, dns_record_schemas_1.ALL_DNS_TXT_RECORD_VERSIONS);
923
923
  })();
@@ -0,0 +1 @@
1
+ export * from "./lib";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./lib"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtZnVuY3Rpb25hcHAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xpYlwiO1xuIl19
@@ -0,0 +1,32 @@
1
+ /**
2
+ * API schemas for Azure Function App across all supported versions
3
+ *
4
+ * This file defines the complete API schemas for Microsoft.Web/sites (kind: functionapp)
5
+ * across all supported API versions. The schemas are used by the VersionedAzapiResource
6
+ * framework for validation, transformation, and version management.
7
+ */
8
+ import { ApiSchema, VersionConfig } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
9
+ /**
10
+ * API Schema for Function App version 2024-04-01
11
+ */
12
+ export declare const FUNCTION_APP_SCHEMA_2024_04_01: ApiSchema;
13
+ /**
14
+ * API Schema for Function App version 2024-11-01
15
+ */
16
+ export declare const FUNCTION_APP_SCHEMA_2024_11_01: ApiSchema;
17
+ /**
18
+ * Version configuration for Function App 2024-04-01
19
+ */
20
+ export declare const FUNCTION_APP_VERSION_2024_04_01: VersionConfig;
21
+ /**
22
+ * Version configuration for Function App 2024-11-01
23
+ */
24
+ export declare const FUNCTION_APP_VERSION_2024_11_01: VersionConfig;
25
+ /**
26
+ * All supported Function App versions for registration
27
+ */
28
+ export declare const ALL_FUNCTION_APP_VERSIONS: VersionConfig[];
29
+ /**
30
+ * Resource type constant
31
+ */
32
+ export declare const FUNCTION_APP_TYPE = "Microsoft.Web/sites";
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ /**
3
+ * API schemas for Azure Function App across all supported versions
4
+ *
5
+ * This file defines the complete API schemas for Microsoft.Web/sites (kind: functionapp)
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.FUNCTION_APP_TYPE = exports.ALL_FUNCTION_APP_VERSIONS = exports.FUNCTION_APP_VERSION_2024_11_01 = exports.FUNCTION_APP_VERSION_2024_04_01 = exports.FUNCTION_APP_SCHEMA_2024_11_01 = exports.FUNCTION_APP_SCHEMA_2024_04_01 = void 0;
11
+ const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
12
+ // =============================================================================
13
+ // COMMON PROPERTY DEFINITIONS
14
+ // =============================================================================
15
+ /**
16
+ * Common property definitions shared across all Function App 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 Function App will be created",
23
+ validation: [
24
+ {
25
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
26
+ message: "Location is required for Function Apps",
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 Function App",
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 Function App. Must be globally unique",
52
+ validation: [
53
+ {
54
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
55
+ message: "Function App name is required",
56
+ },
57
+ ],
58
+ },
59
+ kind: {
60
+ dataType: version_interfaces_1.PropertyType.STRING,
61
+ required: false,
62
+ defaultValue: "functionapp",
63
+ description: "The kind of the Function App (functionapp, functionapp,linux)",
64
+ },
65
+ serverFarmId: {
66
+ dataType: version_interfaces_1.PropertyType.STRING,
67
+ required: true,
68
+ description: "The resource ID of the App Service Plan hosting this Function App",
69
+ validation: [
70
+ {
71
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
72
+ message: "Server farm ID (App Service Plan) is required",
73
+ },
74
+ ],
75
+ },
76
+ httpsOnly: {
77
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
78
+ required: false,
79
+ defaultValue: true,
80
+ description: "Whether the Function App only accepts HTTPS traffic",
81
+ },
82
+ clientAffinityEnabled: {
83
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
84
+ required: false,
85
+ defaultValue: false,
86
+ description: "Whether client affinity (session affinity) is enabled",
87
+ },
88
+ enabled: {
89
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
90
+ required: false,
91
+ defaultValue: true,
92
+ description: "Whether the Function App is enabled",
93
+ },
94
+ siteConfig: {
95
+ dataType: version_interfaces_1.PropertyType.OBJECT,
96
+ required: false,
97
+ description: "Site configuration for the Function App including app settings, runtime, and scaling",
98
+ },
99
+ identity: {
100
+ dataType: version_interfaces_1.PropertyType.OBJECT,
101
+ required: false,
102
+ description: "Managed identity configuration for the Function App",
103
+ },
104
+ publicNetworkAccess: {
105
+ dataType: version_interfaces_1.PropertyType.STRING,
106
+ required: false,
107
+ description: "Whether public network access is enabled (Enabled or Disabled)",
108
+ validation: [
109
+ {
110
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
111
+ value: "^(Enabled|Disabled)$",
112
+ message: "Public network access must be either 'Enabled' or 'Disabled'",
113
+ },
114
+ ],
115
+ },
116
+ virtualNetworkSubnetId: {
117
+ dataType: version_interfaces_1.PropertyType.STRING,
118
+ required: false,
119
+ description: "The subnet resource ID for VNet integration",
120
+ },
121
+ clientCertEnabled: {
122
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
123
+ required: false,
124
+ defaultValue: false,
125
+ description: "Whether client certificate authentication is enabled",
126
+ },
127
+ clientCertMode: {
128
+ dataType: version_interfaces_1.PropertyType.STRING,
129
+ required: false,
130
+ description: "Client certificate mode (Required, Optional, OptionalInteractiveUser)",
131
+ },
132
+ functionAppConfig: {
133
+ dataType: version_interfaces_1.PropertyType.OBJECT,
134
+ required: false,
135
+ description: "Function App configuration for Flex Consumption plans (deployment, runtime, scaling)",
136
+ },
137
+ ignoreChanges: {
138
+ dataType: version_interfaces_1.PropertyType.ARRAY,
139
+ required: false,
140
+ description: "Array of property names to ignore during updates",
141
+ validation: [
142
+ {
143
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
144
+ value: version_interfaces_1.PropertyType.ARRAY,
145
+ message: "IgnoreChanges must be an array of strings",
146
+ },
147
+ ],
148
+ },
149
+ };
150
+ // =============================================================================
151
+ // VERSION-SPECIFIC SCHEMAS
152
+ // =============================================================================
153
+ /**
154
+ * API Schema for Function App version 2024-04-01
155
+ */
156
+ exports.FUNCTION_APP_SCHEMA_2024_04_01 = {
157
+ resourceType: "Microsoft.Web/sites",
158
+ version: "2024-04-01",
159
+ properties: {
160
+ ...COMMON_PROPERTIES,
161
+ },
162
+ required: ["location", "name", "serverFarmId"],
163
+ optional: [
164
+ "tags",
165
+ "kind",
166
+ "httpsOnly",
167
+ "clientAffinityEnabled",
168
+ "enabled",
169
+ "siteConfig",
170
+ "identity",
171
+ "publicNetworkAccess",
172
+ "virtualNetworkSubnetId",
173
+ "clientCertEnabled",
174
+ "clientCertMode",
175
+ "functionAppConfig",
176
+ "ignoreChanges",
177
+ ],
178
+ deprecated: [],
179
+ transformationRules: {},
180
+ validationRules: [
181
+ {
182
+ property: "location",
183
+ rules: [
184
+ {
185
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
186
+ message: "Location is required for Function Apps",
187
+ },
188
+ ],
189
+ },
190
+ {
191
+ property: "name",
192
+ rules: [
193
+ {
194
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
195
+ message: "Name is required for Function Apps",
196
+ },
197
+ ],
198
+ },
199
+ ],
200
+ };
201
+ /**
202
+ * API Schema for Function App version 2024-11-01
203
+ */
204
+ exports.FUNCTION_APP_SCHEMA_2024_11_01 = {
205
+ resourceType: "Microsoft.Web/sites",
206
+ version: "2024-11-01",
207
+ properties: {
208
+ ...COMMON_PROPERTIES,
209
+ },
210
+ required: ["location", "name", "serverFarmId"],
211
+ optional: [
212
+ "tags",
213
+ "kind",
214
+ "httpsOnly",
215
+ "clientAffinityEnabled",
216
+ "enabled",
217
+ "siteConfig",
218
+ "identity",
219
+ "publicNetworkAccess",
220
+ "virtualNetworkSubnetId",
221
+ "clientCertEnabled",
222
+ "clientCertMode",
223
+ "functionAppConfig",
224
+ "ignoreChanges",
225
+ ],
226
+ deprecated: [],
227
+ transformationRules: {},
228
+ validationRules: [
229
+ {
230
+ property: "location",
231
+ rules: [
232
+ {
233
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
234
+ message: "Location is required for Function Apps",
235
+ },
236
+ ],
237
+ },
238
+ {
239
+ property: "name",
240
+ rules: [
241
+ {
242
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
243
+ message: "Name is required for Function Apps",
244
+ },
245
+ ],
246
+ },
247
+ ],
248
+ };
249
+ // =============================================================================
250
+ // VERSION CONFIGURATIONS
251
+ // =============================================================================
252
+ /**
253
+ * Version configuration for Function App 2024-04-01
254
+ */
255
+ exports.FUNCTION_APP_VERSION_2024_04_01 = {
256
+ version: "2024-04-01",
257
+ schema: exports.FUNCTION_APP_SCHEMA_2024_04_01,
258
+ supportLevel: version_interfaces_1.VersionSupportLevel.MAINTENANCE,
259
+ releaseDate: "2024-04-01",
260
+ deprecationDate: undefined,
261
+ sunsetDate: undefined,
262
+ breakingChanges: [],
263
+ migrationGuide: "/docs/function-app/migration-2024-04-01",
264
+ changeLog: [
265
+ {
266
+ changeType: "updated",
267
+ description: "Stable release with Function App support",
268
+ breaking: false,
269
+ },
270
+ ],
271
+ };
272
+ /**
273
+ * Version configuration for Function App 2024-11-01
274
+ */
275
+ exports.FUNCTION_APP_VERSION_2024_11_01 = {
276
+ version: "2024-11-01",
277
+ schema: exports.FUNCTION_APP_SCHEMA_2024_11_01,
278
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
279
+ releaseDate: "2024-11-01",
280
+ deprecationDate: undefined,
281
+ sunsetDate: undefined,
282
+ breakingChanges: [],
283
+ migrationGuide: "/docs/function-app/migration-2024-11-01",
284
+ changeLog: [
285
+ {
286
+ changeType: "updated",
287
+ description: "Latest API version with improved features and performance enhancements",
288
+ breaking: false,
289
+ },
290
+ ],
291
+ };
292
+ /**
293
+ * All supported Function App versions for registration
294
+ */
295
+ exports.ALL_FUNCTION_APP_VERSIONS = [
296
+ exports.FUNCTION_APP_VERSION_2024_04_01,
297
+ exports.FUNCTION_APP_VERSION_2024_11_01,
298
+ ];
299
+ /**
300
+ * Resource type constant
301
+ */
302
+ exports.FUNCTION_APP_TYPE = "Microsoft.Web/sites";
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tYXBwLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtZnVuY3Rpb25hcHAvbGliL2Z1bmN0aW9uLWFwcC1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQTBDO0lBQy9ELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUseURBQXlEO1FBQ3RFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUsd0NBQXdDO2FBQ2xEO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFDLEtBQUssRUFBRSxhQUFhO2dCQUNwQixPQUFPLEVBQUUsMERBQTBEO2FBQ3BFO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsRUFBRTtRQUNoQixXQUFXLEVBQUUsbURBQW1EO1FBQ2hFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxVQUFVO2dCQUN2QyxLQUFLLEVBQUUsaUNBQVksQ0FBQyxNQUFNO2dCQUMxQixPQUFPLEVBQUUsb0RBQW9EO2FBQzlEO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsdURBQXVEO1FBQ3BFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1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QUMxQixVQUFVLEVBQUUsU0FBUztJQUNyQixlQUFlLEVBQUUsRUFBRTtJQUNuQixjQUFjLEVBQUUseUNBQXlDO0lBQ3pELFNBQVMsRUFBRTtRQUNUO1lBQ0UsVUFBVSxFQUFFLFNBQVM7WUFDckIsV0FBVyxFQUNULHdFQUF3RTtZQUMxRSxRQUFRLEVBQUUsS0FBSztTQUNoQjtLQUNGO0NBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSx5QkFBeUIsR0FBb0I7SUFDeEQsdUNBQStCO0lBQy9CLHVDQUErQjtDQUNoQyxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBUEkgc2NoZW1hcyBmb3IgQXp1cmUgRnVuY3Rpb24gQXBwIGFjcm9zcyBhbGwgc3VwcG9ydGVkIHZlcnNpb25zXG4gKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIGNvbXBsZXRlIEFQSSBzY2hlbWFzIGZvciBNaWNyb3NvZnQuV2ViL3NpdGVzIChraW5kOiBmdW5jdGlvbmFwcClcbiAqIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy4gVGhlIHNjaGVtYXMgYXJlIHVzZWQgYnkgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2VcbiAqIGZyYW1ld29yayBmb3IgdmFsaWRhdGlvbiwgdHJhbnNmb3JtYXRpb24sIGFuZCB2ZXJzaW9uIG1hbmFnZW1lbnQuXG4gKi9cblxuaW1wb3J0IHtcbiAgQXBpU2NoZW1hLFxuICBQcm9wZXJ0eURlZmluaXRpb24sXG4gIFByb3BlcnR5VHlwZSxcbiAgVmFsaWRhdGlvblJ1bGVUeXBlLFxuICBWZXJzaW9uQ29uZmlnLFxuICBWZXJzaW9uU3VwcG9ydExldmVsLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT01NT04gUFJPUEVSVFkgREVGSU5JVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnR5IGRlZmluaXRpb25zIHNoYXJlZCBhY3Jvc3MgYWxsIEZ1bmN0aW9uIEFwcCB2ZXJzaW9uc1xuICovXG5jb25zdCBDT01NT05fUFJPUEVSVElFUzogeyBba2V5OiBzdHJpbmddOiBQcm9wZXJ0eURlZmluaXRpb24gfSA9IHtcbiAgbG9jYXRpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSBGdW5jdGlvbiBBcHAgd2lsbCBiZSBjcmVhdGVkXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBGdW5jdGlvbiBBcHBzXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16MC05XSskXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gbXVzdCBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMgYW5kIG51bWJlcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdGFnczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IHt9LFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgZGljdGlvbmFyeSBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBGdW5jdGlvbiBBcHBcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVFlQRV9DSEVDSyxcbiAgICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgICAgIG1lc3NhZ2U6IFwiVGFncyBtdXN0IGJlIGFuIG9iamVjdCB3aXRoIHN0cmluZyBrZXktdmFsdWUgcGFpcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbmFtZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBGdW5jdGlvbiBBcHAuIE11c3QgYmUgZ2xvYmFsbHkgdW5pcXVlXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkZ1bmN0aW9uIEFwcCBuYW1lIGlzIHJlcXVpcmVkXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGtpbmQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBcImZ1bmN0aW9uYXBwXCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlRoZSBraW5kIG9mIHRoZSBGdW5jdGlvbiBBcHAgKGZ1bmN0aW9uYXBwLCBmdW5jdGlvbmFwcCxsaW51eClcIixcbiAgfSxcbiAgc2VydmVyRmFybUlkOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlRoZSByZXNvdXJjZSBJRCBvZiB0aGUgQXBwIFNlcnZpY2UgUGxhbiBob3N0aW5nIHRoaXMgRnVuY3Rpb24gQXBwXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIlNlcnZlciBmYXJtIElEIChBcHAgU2VydmljZSBQbGFuKSBpcyByZXF1aXJlZFwiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBodHRwc09ubHk6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRoZSBGdW5jdGlvbiBBcHAgb25seSBhY2NlcHRzIEhUVFBTIHRyYWZmaWNcIixcbiAgfSxcbiAgY2xpZW50QWZmaW5pdHlFbmFibGVkOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgY2xpZW50IGFmZmluaXR5IChzZXNzaW9uIGFmZmluaXR5KSBpcyBlbmFibGVkXCIsXG4gIH0sXG4gIGVuYWJsZWQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRoZSBGdW5jdGlvbiBBcHAgaXMgZW5hYmxlZFwiLFxuICB9LFxuICBzaXRlQ29uZmlnOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJTaXRlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBGdW5jdGlvbiBBcHAgaW5jbHVkaW5nIGFwcCBzZXR0aW5ncywgcnVudGltZSwgYW5kIHNjYWxpbmdcIixcbiAgfSxcbiAgaWRlbnRpdHk6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiTWFuYWdlZCBpZGVudGl0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgRnVuY3Rpb24gQXBwXCIsXG4gIH0sXG4gIHB1YmxpY05ldHdvcmtBY2Nlc3M6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIldoZXRoZXIgcHVibGljIG5ldHdvcmsgYWNjZXNzIGlzIGVuYWJsZWQgKEVuYWJsZWQgb3IgRGlzYWJsZWQpXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl4oRW5hYmxlZHxEaXNhYmxlZCkkXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiUHVibGljIG5ldHdvcmsgYWNjZXNzIG11c3QgYmUgZWl0aGVyICdFbmFibGVkJyBvciAnRGlzYWJsZWQnXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHZpcnR1YWxOZXR3b3JrU3VibmV0SWQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIHN1Ym5ldCByZXNvdXJjZSBJRCBmb3IgVk5ldCBpbnRlZ3JhdGlvblwiLFxuICB9LFxuICBjbGllbnRDZXJ0RW5hYmxlZDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIGNsaWVudCBjZXJ0aWZpY2F0ZSBhdXRoZW50aWNhdGlvbiBpcyBlbmFibGVkXCIsXG4gIH0sXG4gIGNsaWVudENlcnRNb2RlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJDbGllbnQgY2VydGlmaWNhdGUgbW9kZSAoUmVxdWlyZWQsIE9wdGlvbmFsLCBPcHRpb25hbEludGVyYWN0aXZlVXNlcilcIixcbiAgfSxcbiAgZnVuY3Rpb25BcHBDb25maWc6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIkZ1bmN0aW9uIEFwcCBjb25maWd1cmF0aW9uIGZvciBGbGV4IENvbnN1bXB0aW9uIHBsYW5zIChkZXBsb3ltZW50LCBydW50aW1lLCBzY2FsaW5nKVwiLFxuICB9LFxuICBpZ25vcmVDaGFuZ2VzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiQXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgdG8gaWdub3JlIGR1cmluZyB1cGRhdGVzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgICAgIG1lc3NhZ2U6IFwiSWdub3JlQ2hhbmdlcyBtdXN0IGJlIGFuIGFycmF5IG9mIHN0cmluZ3NcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OLVNQRUNJRklDIFNDSEVNQVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgRnVuY3Rpb24gQXBwIHZlcnNpb24gMjAyNC0wNC0wMVxuICovXG5leHBvcnQgY29uc3QgRlVOQ1RJT05fQVBQX1NDSEVNQV8yMDI0XzA0XzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuV2ViL3NpdGVzXCIsXG4gIHZlcnNpb246IFwiMjAyNC0wNC0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbXCJsb2NhdGlvblwiLCBcIm5hbWVcIiwgXCJzZXJ2ZXJGYXJtSWRcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJ0YWdzXCIsXG4gICAgXCJraW5kXCIsXG4gICAgXCJodHRwc09ubHlcIixcbiAgICBcImNsaWVudEFmZmluaXR5RW5hYmxlZFwiLFxuICAgIFwiZW5hYmxlZFwiLFxuICAgIFwic2l0ZUNvbmZpZ1wiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgICBcInB1YmxpY05ldHdvcmtBY2Nlc3NcIixcbiAgICBcInZpcnR1YWxOZXR3b3JrU3VibmV0SWRcIixcbiAgICBcImNsaWVudENlcnRFbmFibGVkXCIsXG4gICAgXCJjbGllbnRDZXJ0TW9kZVwiLFxuICAgIFwiZnVuY3Rpb25BcHBDb25maWdcIixcbiAgICBcImlnbm9yZUNoYW5nZXNcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgRnVuY3Rpb24gQXBwc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgRnVuY3Rpb24gQXBwc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBGdW5jdGlvbiBBcHAgdmVyc2lvbiAyMDI0LTExLTAxXG4gKi9cbmV4cG9ydCBjb25zdCBGVU5DVElPTl9BUFBfU0NIRU1BXzIwMjRfMTFfMDE6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5XZWIvc2l0ZXNcIixcbiAgdmVyc2lvbjogXCIyMDI0LTExLTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcInNlcnZlckZhcm1JZFwiXSxcbiAgb3B0aW9uYWw6IFtcbiAgICBcInRhZ3NcIixcbiAgICBcImtpbmRcIixcbiAgICBcImh0dHBzT25seVwiLFxuICAgIFwiY2xpZW50QWZmaW5pdHlFbmFibGVkXCIsXG4gICAgXCJlbmFibGVkXCIsXG4gICAgXCJzaXRlQ29uZmlnXCIsXG4gICAgXCJpZGVudGl0eVwiLFxuICAgIFwicHVibGljTmV0d29ya0FjY2Vzc1wiLFxuICAgIFwidmlydHVhbE5ldHdvcmtTdWJuZXRJZFwiLFxuICAgIFwiY2xpZW50Q2VydEVuYWJsZWRcIixcbiAgICBcImNsaWVudENlcnRNb2RlXCIsXG4gICAgXCJmdW5jdGlvbkFwcENvbmZpZ1wiLFxuICAgIFwiaWdub3JlQ2hhbmdlc1wiLFxuICBdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogW1xuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcImxvY2F0aW9uXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBGdW5jdGlvbiBBcHBzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBGdW5jdGlvbiBBcHBzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTiBDT05GSUdVUkFUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIEZ1bmN0aW9uIEFwcCAyMDI0LTA0LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBGVU5DVElPTl9BUFBfVkVSU0lPTl8yMDI0XzA0XzAxOiBWZXJzaW9uQ29uZmlnID0ge1xuICB2ZXJzaW9uOiBcIjIwMjQtMDQtMDFcIixcbiAgc2NoZW1hOiBGVU5DVElPTl9BUFBfU0NIRU1BXzIwMjRfMDRfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5NQUlOVEVOQU5DRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyNC0wNC0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy9mdW5jdGlvbi1hcHAvbWlncmF0aW9uLTIwMjQtMDQtMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJ1cGRhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTdGFibGUgcmVsZWFzZSB3aXRoIEZ1bmN0aW9uIEFwcCBzdXBwb3J0XCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBGdW5jdGlvbiBBcHAgMjAyNC0xMS0wMVxuICovXG5leHBvcnQgY29uc3QgRlVOQ1RJT05fQVBQX1ZFUlNJT05fMjAyNF8xMV8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI0LTExLTAxXCIsXG4gIHNjaGVtYTogRlVOQ1RJT05fQVBQX1NDSEVNQV8yMDI0XzExXzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDI0LTExLTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL2Z1bmN0aW9uLWFwcC9taWdyYXRpb24tMjAyNC0xMS0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkxhdGVzdCBBUEkgdmVyc2lvbiB3aXRoIGltcHJvdmVkIGZlYXR1cmVzIGFuZCBwZXJmb3JtYW5jZSBlbmhhbmNlbWVudHNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBbGwgc3VwcG9ydGVkIEZ1bmN0aW9uIEFwcCB2ZXJzaW9ucyBmb3IgcmVnaXN0cmF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBBTExfRlVOQ1RJT05fQVBQX1ZFUlNJT05TOiBWZXJzaW9uQ29uZmlnW10gPSBbXG4gIEZVTkNUSU9OX0FQUF9WRVJTSU9OXzIwMjRfMDRfMDEsXG4gIEZVTkNUSU9OX0FQUF9WRVJTSU9OXzIwMjRfMTFfMDEsXG5dO1xuXG4vKipcbiAqIFJlc291cmNlIHR5cGUgY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEZVTkNUSU9OX0FQUF9UWVBFID0gXCJNaWNyb3NvZnQuV2ViL3NpdGVzXCI7XG4iXX0=